在 jquery 中使用 .change() 和 datepicker 提交表单
Posted
技术标签:
【中文标题】在 jquery 中使用 .change() 和 datepicker 提交表单【英文标题】:Using .change() and a datepicker in jquery to submit a form 【发布时间】:2011-09-05 18:55:32 【问题描述】:目前我正在使用 JQuery UI 的 datepicker 范围,并且我添加了更多的 javascript,当不同的表单元素发生变化时应该在页面上提交表单。
如果我手动输入日期然后点击离开,这适用于我添加的下拉菜单以及日期选择器输入框。
但是,如果我单击日期选择器的输入字段,并且弹出日期选择器,则选择日期后表单将不会提交..
好像输入字段不知道发生了变化..?
http://api.jquery.com/change/
这是我正在使用的代码:
$(document).ready(function()
$('#from').change(function()
document.myform.submit();
);
);
$(document).ready(function()
$('#to').change(function()
document.myform.submit();
);
);
使用 datepicker UI 事件,我添加了以下代码进行测试,但它不起作用.. 有什么想法吗?
$(document).ready(function()
$('#from').datepicker(
onClose: function() alert('Yo yo!')
);
);
【问题讨论】:
【参考方案1】:jQuery UI DatePicker 有自定义事件,特别是 onSelect 事件,点击事件的选项卡,它在文档的底部:
http://jqueryui.com/demos/datepicker/
【讨论】:
【参考方案2】:仔细检查您引用的代码上方没有 JavaScript 错误。
如果出现错误,则这些错误下方的 JavaScript 代码将无法正常执行。
这可能就是您添加到测试的代码也不起作用的原因。
【讨论】:
尝试使用 onSelect 事件而不是 @OriginalSyn 建议的 onClose 事件 我认为问题在于 .change 事件是 "deferred until the element loses focus." 这就是为什么它仅在您专门输入值时才有效。要让它在您选择日期时工作,请尝试使用 onSelect【参考方案3】:正确答案在这里:jQuery datepicker, onSelect won't work
【讨论】:
【参考方案4】:我希望它应该是 on focus
。单击日期选择器时,焦点将位于您必须显示日期的文本框中。
所以事件应该是.focus()
http://api.jquery.com/focus/
http://api.jquery.com/focusout/
【讨论】:
以上是关于在 jquery 中使用 .change() 和 datepicker 提交表单的主要内容,如果未能解决你的问题,请参考以下文章
jquery radio改变时没有触发on的change事件,是为啥
layui如何自动触发change事件,可以用jquery的change吗?
Jquery Select2,如何在 on(change) 函数中访问 ajax 数据?
Jquery UI DateTimePicker 将 3 天添加到当前日期并使用 dp.change 方法禁用 datePickerStart 和 datePickerEnd 日期中的未来日期