我使用datepick()函数添加日历到日期输入。这工作正常,除非输入的id用点命名。我需要点,因为这是一个非常动态的形式,我永远不会知道表单中sessionStartDate的数量。
我错过了什么?
function addDatePick(){
$('#evntSes1.sessionStartDate').datepick();
$('#evntSes2.sessionStartDate').datepick();
}
<select id="evntSes1.sessionTypeID" name="evntSes1.sessionTypeID">
<select id="evntSes2.sessionTypeID" name="evntSes2.sessionTypeID">
感谢您的任何建议
答案 0 :(得分:2)
在dot之前使用两个反斜杠:
function addDatePick(){
$('#evntSes1\\.sessionStartDate').datepick();
$('#evntSes2\\.sessionStartDate').datepick();
}
<select id="evntSes1.sessionTypeID" name="evntSes1.sessionTypeID">
<select id="evntSes2.sessionTypeID" name="evntSes2.sessionTypeID">
答案 1 :(得分:0)
因为点语法用于类。使用您的语法,它将查找id为“eventSes1”且具有类“sessionStartDate”的div。
您可以在表单生成器/ html中使用sessionsStartDate作为类,而不是将其附加到带有点的id。如果你是懒惰而且不想改变你的表格的“计数”算法,那么只需将点改为 - 或者某种东西
答案 2 :(得分:0)
.
是jQuery用于选择类的特殊字符。在您的情况下,它正在寻找ID为evntSes1
且类为sessionStartDate
的元素。
要让jQuery识别.
作为id的一部分,你需要在点前面用一个反斜杠来转义它。有关详细信息,请参阅official documentation on selectors。
为了完成,还有其他角色需要转义。这些是!"#$%&'()*+,./:;<=>?@[]^`{|}~
。
以你的案例为例,你可以这样逃避:
$('#evntSes1\\.sessionStartDate')
请注意,您需要键入2个反斜杠,因为需要一个反斜杠来转义JavaScript字符串中的反斜杠。 jQuery将从示例中收到一个看起来像#evntSes1\.sessionStartDate
的选择器。