JQuery DatePicker и несколько на выбор события

0

У меня есть форма с выбором даты в 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

Теги:
jsfiddle
jquery-ui-datepicker

1 ответ

2
Лучший ответ

Селектор ввода использует ^=, который соответствует точному СТАРТу значения, но ваши значения не начинаются с этого значения. Я предлагаю изменить это на *= поэтому он ищет в любом месте идентификатора. Справочные документы jQuery

Во- вторых, вы забываете закрывающую ' смету для этого селектора.

Это устраняет проблемы с селектором для активации. Теперь вам просто нужно вызвать общую функцию, чтобы проверить, были ли заполнены и дата, и радио (в одной строке).

Исправлен JSFiddle

Это активирует checkProtocol() когда выбрана дата, и передает входной текстовый элемент вместе с ней.

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

Это активирует checkProtocol() когда для этой группы выбран переключатель, и передает этот элемент в качестве параметра.

$("input[id*='protocol_protocol']").change( function() { checkProtocol(this) } );
  • 0
    это не отвечает на мой вопрос. извините за ошибку, я правильно понимаю все селекторы, но я хочу вызвать событие при выборе обоих событий в одной строке.
  • 0
    Да, я понял, что вскоре после публикации я обновляю Fiddle с большим количеством информации.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню