9

我在一种形式中有两个日期选择器。他们有不同的 id,所以这不应该与类似的错误有关,比如这个。 jQuery。将选择器应用于动态表单中的每个字段

我在萤火虫中遇到的错误是“未捕获的异常:缺少此日期选择器的实例数据”

当我从表单上的第二个日期选择器“#copyTo”日期选择器中选择一天时会触发该事件。第一个日期选择器完美运行。

我的表格是

  <form name="copy" action="copyEvents.php" method="post">
     <input type="hidden" id="copyFromHid" name="copyFromHid"/>
     <input type="hidden" id="copyToHid" name="copyToHid"/>

     从 <input id="copyFrom" name="copyFrom"/> 复制

     复制到 <input type="text" id="copyTo" name="copyTo"/>

     <input type="hidden" name="gid" id="gid"/>
     <input type="submit" value="copy"/>
  </form>

jQuery是

jQuery('input#copyFrom','div#copyFromHistory form')
    .datepicker({ 
        altField: 'input#copyFromHid',
        altFormat: 'yy-mm-d',
        dateFormat: 'd MM yy', 
        firstDay: 1,
        beforeShowDay: function(date) { 
            return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
    });
jQuery('input#copyTo','div#copyFromHistory form')
    .datepicker({ 
        altField: 'input#copyToHid',
        altFormat: 'yy-mm-d',
        dateFormat: 'd MM yy', 
        firstDay: 1,
        beforeShowDay: function(date) { 
            return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
    });

关于为什么第一个字段会起作用但第二个字段不起作用的任何建议?

4

2 回答 2

6

很容易解决,把你的代码改成这样:

$('.date').live('focus', function(){
    $(this).datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '1930:'+(new Date).getFullYear()
    });
});
于 2012-06-01T02:04:38.770 回答
2

想到两件事:

一个在您的 jQuery 选择器中:

jQuery('input#copyFrom','div#copyFromHistory form')
jQuery('input#copyTo','div#copyFromHistory form')

在这两种情况下,您都将 context/ownerDocument 参数传递给jQuery()但它正在寻找 DOM 元素或文档......而不是字符串。

第二件事是:

Copy From <input id="copyFrom" name="copyFrom"/>
Copy To <input type="text" id="copyTo" name="copyTo"/>

Copy To 有type="test"而 Copy From 没有(尽管默认输入类型是文本......所以可能不是这样)

我怀疑你真的想要:

jQuery('input#copyFrom').datepicker(....)
jQuery('input#copyTo').datepicker(....)
于 2010-01-22T04:13:23.047 回答