【问题标题】:Using .change() and a datepicker in jquery to submit a form在 jquery 中使用 .change() 和 datepicker 提交表单
【发布时间】: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!') }
                });

            });

【问题讨论】:

    标签: javascript jquery jquery-ui


    【解决方案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/

        【讨论】:

          猜你喜欢
          • 2015-01-16
          • 1970-01-01
          • 1970-01-01
          • 2010-09-30
          • 1970-01-01
          • 2011-04-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多