Jquery datepicker和select事件上的多个

时间:2014-04-30 19:20:16

标签: javascript jquery jquery-ui jquery-ui-datepicker jsfiddle

我有一个带有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中),但它没用。 任何人都对我如何不引人注目地提出任何想法。

Jsfiddle

1 个答案:

答案 0 :(得分:2)

您的输入选择器正在使用^=,它与值的确切START匹配,但您的值不以该值开头。我建议将其更改为*=,以便在ID中的任何位置进行搜索。 Reference jQuery Docs

其次,您忘记了该选择器的结束'引用。

修复了激活选择器问题。现在你只需要触发一个通用函数来检查Date和Radio(在同一行)是否已经填写完毕。

Fixed JSFiddle

这会在选择日期时激活checkProtocol()函数,并将输入文本元素传递给它。

$(this).datepicker({
    onSelect: function() { checkProtocol( this ) }
});

当为该组选择单选按钮并将该元素作为参数传递时,这将激活checkProtocol()功能。

$("input[id*='protocol_protocol']").change( function() { checkProtocol(this) } );