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

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

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

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

4648閲覧

jquery ui datepickerでname属性を使うとカレンダーが閉じません。

she

総合スコア10

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/10/26 16:23

編集2016/10/27 23:55

###jQuery UIのDatepickerで予約日を指定してもらおうと思っています。
wordpressの自作テーマでメールフォームはメールフォームプロCGIを使っています。
今回、jQuery UIのDatepickerで予約日をカレンダーから指定してもらおうと思っています。

###name属性を使うとカレンダーが閉じません。
Datepickerを正しく表示させることはできましたが、メールフォームプロCGIに値を引き継がせるためにname属性を使うと、下記のように挙動がおかしくなります。
・日をクリックして選択すると、ページ上部に戻ってしまう。(値は正常です。)
・このときhttp://example.com/reservation#のように、URLの最後に#がついている
・カレンダーが閉じていない

大変恐れ入りますが教えていただけたら幸いです…
よろしくお願いいたします…

###該当のソースコード
フォームのページ

<input type="hidden" name="日時" data-join="日+ +時" /><input type="text" class="datepicker" name="日"> <select name="時"> <option value=" ">時間をご選択ください</option> <option value="10:00">10:00</option> <option value="10:30">10:30</option> <option value="11:00">11:00</option> <option value="11:30">11:30</option> </select>

header.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js"></script> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css" > <script> $(function() { $(".datepicker").datepicker({ minDate: '0y', //今日から maxDate: '+5m', dateFormat: 'yy/mm/dd(D)', //年-月-日(曜日) firstDay: 1, beforeShowDay: function(day) { var result; switch (day.getDay()) { case 3: // 水曜日を選択できないようにする result = [false]; break; default: result = [true]; // それ以外は選択できる break; } return result; } }); }); </script>

追記
datepickerの日付には<a href="#">がついているので、name属性をつけた時だけURLの最後に#がつくということは、なんらかの原因で、無効にされるはずのリンクイベントが生きているということだと思うのですが、直し方が分かりません…

追記2
datepickerの日付のaタグ部分は下記のようになっています。
<a class="ui-state-default ui-state-highlight" href="#">28</a>

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

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

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

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

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

date

2016/10/27 23:46

aタグの部分も見せてもらえませんか?
she

2016/10/28 00:00

ありがとうございます。datepickerの日付のaタグ部分でよかったでしょうか。
guest

回答1

0

動くサンプル:https://jsfiddle.net/3hzp0qqw/

問題が再現しません。

症状から見て、aタグの閉じ忘れがページのどこかにあるという可能性が非常に高いです。
出力されたHTML(ブラウザで「ページのソースを表示」)を確認し、タグの閉じ忘れや全角でタグを書いていないか、"" の閉じ忘れなどを確認してみてください。

投稿2016/10/26 17:16

kei344

総合スコア69398

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

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

she

2016/10/27 21:42

ご回答ありがとうございます。 htmlのバリデータやタグ対応チェックなどしてみましたがaタグは間違えていないようでした。 しかし「name属性をつけたら」だったのでそこが原因だと思い込んでいたのですが、他のところかもしれないということですよね。すみませんちゃんと原因を探してみます…
kei344

2016/10/28 03:15

> datepickerの日付のaタグ部分 何に必要なものですか?
she

2016/10/28 04:37

「aタグの部分も見せてもらえませんか?」とのことでしたのでコピペした部分です。 jQuery UIのDatepickerが生成している部分で私にはよくわからないのですが、クリックイベントのためにaタグを使っていて、href="#"の部分は本来無効になるはずがなんらかの原因で有効のままになっていないのではないかと思っています…
kei344

2016/10/28 05:50

aタグは関係ないと思いますよ。 適切にDatepickerを設定していれば、input要素にフォーカスが当たると動くと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問