【发布时间】:2013-03-25 15:08:48
【问题描述】:
我在使用 jQuery 移动日期框时遇到 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 日期选择器填写日期后,该字段仍列为必填字段,即使它不为空。
【问题讨论】:
-
您的代码赞成 ;)
-
您只是关闭了
onkeyup。onfocusout事件是一个不同的选项,默认情况下是打开的,除非您也将其关闭。您将不得不显示所有相关代码,包括日期选择器。
标签: jquery-mobile jquery-validate datepicker mobiscroll