我有一个带有jquery日期选择的表单和下面的单选按钮
<table>
<tr>
<td>
<input type="text" id="5506_datepick_1"></input>
</td>
<td>
<input id="5506_protocol_protocol_1" type="radio" value="protocol 1" name="5506[protocol]">pp1</input>
<input id="5506_protocol_protocol_2" type="radio" value="protocol 2" name="5506[protocol]">pp2</input>
</td>
</tr>
<tr>
<td>
<input type="text" id="5507_datepick_2"></input>
</td>
<td>
<input id="5507_protocol_protocol_1" type="radio" value="protocol 1" name="5507[protocol]">pp1</input>
<input id="5507_protocol_protocol_2" type="radio" value="protocol 2" name="5507[protocol]">pp2</input>
</td>
</tr>
</table>
每当有人在每一行上选择两个输入时(例如:5506 *的无线电和5506 *的日期选择器),我希望无论选择顺序如何都能触发一个功能。 我尝试过以下(在Js Fiddle中),但它没用。 任何人都对我如何不引人注目地提出任何想法。
答案 0 :(得分:2)
您的输入选择器正在使用^=
,它与值的确切START匹配,但您的值不以该值开头。我建议将其更改为*=
,以便在ID中的任何位置进行搜索。 Reference jQuery Docs
其次,您忘记了该选择器的结束'
引用。
修复了激活选择器问题。现在你只需要触发一个通用函数来检查Date和Radio(在同一行)是否已经填写完毕。
这会在选择日期时激活checkProtocol()
函数,并将输入文本元素传递给它。
$(this).datepicker({
onSelect: function() { checkProtocol( this ) }
});
当为该组选择单选按钮并将该元素作为参数传递时,这将激活checkProtocol()
功能。
$("input[id*='protocol_protocol']").change( function() { checkProtocol(this) } );