添加jquery函数以形成在其ID中具有点的输入

时间:2011-08-16 17:35:01

标签: jquery forms function input

我使用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">

感谢您的任何建议

3 个答案:

答案 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的选择器。