質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

1290閲覧

【WordPress】ContactForm7 Datepickerでカレンダーアイコンを表示する

tomyy

総合スコア22

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/02/02 02:49

前提・実現したいこと

どなたか同じ事をされた方がいらっしゃいましたら教えて下さい。

現在ContactForm7+ContactForm7 Datepickerで申し込みフォームを作成しています。
一通り設定も終わり、下の画像のように表示されています。
イメージ説明

日付の入力欄をクリックするとカレンダーが表示され、日付を選択する事もできています。
イメージ説明
この状態でも使えなくはないのですが、できれば入力Formの右側にFont Awesomeなどのカレンダーアイコンを入れ、
そこをクリックする事でカレンダーを表示できる仕組みにしたいと考えています。

この様な場合、どの様に実装すれば良いのでしょうか?
JavaScriptの知識も殆どないです。CSSで疑似要素にするなど素人なりに思いつく範囲で試したのですがうまくいきません。
どなたかご教示頂けますと幸いです。よろしくお願いします。

該当のソースコード

html

1<tr> 2 <td class="titlebox">タイトル [必須]</td> 3 <td class="answerbox">[date* date-753 class:calendar date-format:mm/dd/yy first-day:0 placeholder "例:2019/01/01 "] 4 </td> 5</tr>

試したこと

CSSでなんとかならないかと考え、
Form内(ショートコード内)に<i class="fa fa-calendar" aria-hidden="true"></i>を入れて右側寄せをしたり、
class:calendarに:beforeでFont Awesomeのアイコン表示し、右寄せも試してみましたが何れも動作しませんでした。

補足情報

できれば入力欄外にアイコンを表示したいのですが、複雑であれば入力欄内に表示+右寄せでも可能です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ContactForm7 で、

<tr>  <td class="titlebox">タイトル [必須]</td>  <td class="answerbox">[date* date-753 class:calendar date-format:mm/dd/yy first-day:0 placeholder "例:2019/01/01 "] </td> </tr>

とフォームを作成していて、

アイコンの表示が入力欄外に表示で OK なら

<tr>  <td class="titlebox">タイトル [必須]</td>  <td class="answerbox">[date* date-753 class:calendar date-format:mm/dd/yy first-day:0 placeholder "例:2019/01/01 "] <span onclick="myFunc()"><i class="fa fa-calendar" aria-hidden="true"></i></span> </td> </tr>

JavaScript は、適当な場所に記載

<script> function myFunc(){ documtnt.forms[0].<フィールド名>.focus(); } </script>

のように Contact Form7 のショートコードの後にそのまま記載すれば入力欄の右側にアイコンが表示されるので、あとは、JavaScript を使って onclickで focus()すれば、よいのではないでしょうか?

例:

イメージ説明

投稿2019/02/04 03:49

編集2019/02/04 10:59
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomyy

2019/02/04 10:25

CHERRY様 回答ありがとうございます。 仰る通り、その方法でカレンダーのアイコンは表示されます。 しかしながら、そのままではカレンダーアイコンをクリックしてもDatepickerのカレンダーが表示されません。 (form内をクリックすると表示されます) ここをアイコンクリックで表示させたいと考えております。 分かりにくい説明となり申し訳ございません。 引き続き何か方法がございましたらよろしくお願い致します。
CHERRY

2019/02/04 10:59

追記しました。
tomyy

2019/02/07 12:01

CHERRY様 追記有難うございます、返答遅くなり申し訳ございません。 ”<script> function myFunc(){ document.forms[0].date-753.focus(); } </script>” この様に試してみたのですが、どうもうまくいきません。 "Uncaught ReferenceError: myFunc is not defined at HTMLSpanElement.onclick" この様なエラーが出ております。scriptタグの設置場所など思いつく範囲では試したのですが、 jsについて知識がなく、解決できませんでした。 フィールド名の指定が違うのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問