jQuery mobile dateboxを使用すると、jQueryの検証に問題が発生します。
検証を次のように設定しています。
onkeyup: false
代わりに、フォーカス/ブラー(タブ)イベントの検証がトリガーされると思います。
問題は、日付ボックスピッカーを使用して日付を設定すると、このイベントが発生しないように見えるため、日付が「必須」の日付ボックスがあり、それが入力されている場合でも、エラーメッセージが表示されることです...
編集:
これが私のフィドルです:
HTML
<form id="my_form" method="post">
<input name="name" id="full-name" data-theme="a" placeholder="Name" class="required">
<input name="athlete_datebox" id="athlete_datebox" data-theme="a" placeholder="Date of Birth" class="required">
<input type="submit" value="submit">
</form>
JS
$(document).ready(function () {
$('#my_form').validate({
onkeyup: true
});
$('#athlete_datebox').mobiscroll().date({
theme: 'jqm',
display: 'modal',
mode: 'clickpick',
dateOrder: 'mmD ddyy',
dateFormat: 'yy-M-dd',
endYear: 2034
});
$('#my_form').on('submit', function (event) {
event.stopPropagation();
event.preventDefault();
if ($('#my_form').valid()) {
alert('is valid');
}
});
})
何かを入力する前に「送信」をクリックすると、両方のフィールドが必須であることがわかります。ただし、mobiscroll日付ピッカーで日付を入力した後も、フィールドは空ではありませんが、必須としてリストされています。