【发布时间】:2014-06-30 17:01:10
【问题描述】:
我在隐藏字段的表单上使用 jQuery Datepicker,然后单击链接以编辑值。
<a class="pickDate edit-link" id="reqSubmitDate">Thu, Feb 27, 2014</a>
<input type="hidden" value="Thu, Feb 27, 2014" id="reqSubmitDateinput" name="RequisitionSubmitDate" class="hasDatepicker">
我在隐藏输入上启动了日期选择器。
$('#reqSubmitDateinput, #orderAckDateinput, #deliveryDateinput').datepicker();
您单击该链接,它会打开日期选择器以获取匹配的输入。
$('.pickDate').click(function () {
var id = $(this).attr('id');
var input = id + 'input';
$('#' + input).datepicker('show');
});
然后它使用我设置的默认值来获取用户选择的日期并设置隐藏输入的值。
$.datepicker.setDefaults({
minDate: 0,
onSelect: function (date) {
var id = $(this).attr('id');
id = id.slice(0, -5);
$('#' + id).text(date);
}
});
它似乎在前两个上工作得很好,但在最后一个上却不工作,尽管只有 ID 不同并且符合相同的格式。我明白了:
TypeError: n is undefined jquery.....min.js (line 5)
它似乎停止显示选择器。
我尝试将前两个移到一个不起作用的那个之后,看看它是否是有多少的问题,不是这样。我还尝试将非工作的一个移到其他附近。没有运气。
jsfiddle 按要求:http://jsfiddle.net/ZGD6B/
【问题讨论】:
-
请发布完整的代码示例。如果可能,还添加一个 jsFiddle.net 示例。
-
如果某些内容未定义,那么我会认为您的其中一个 pickData 标签没有 ID。当有一个问题表明您想要查看变量的分配时。什么会使它不确定。可能未定义的地方是 id。例如,未定义 + “输入” = “未定义输入”。最突出的问题是:
id.slice(0,-5);如果 ID 未定义,则将引发该错误 -
@j08691 jsfiddle.net/ZGD6B
-
-
我想知道这是否是一个错误。如果我从第二个输入中删除
type="hidden",它就可以工作。如果我交换输入并做同样的事情,它会起作用。所以当有多个隐藏输入字段时,最后一个隐藏输入似乎有问题。
标签: javascript jquery html jquery-ui datepicker