странное поведение при проверке, выбран ли переключатель в JQuery - PullRequest
1 голос
/ 25 апреля 2010

У меня была следующая проверка в моем jQuery, которая, как мне показалось, работала нормально, чтобы посмотреть, была ли выбрана радиокнопка.

if ($("input[@name='companyType']:checked").attr('id') == "primary") {
   ...
}

Вот радиокнопки:

    <p>
        <label>Company Type:</label>
        <label for="primary"><input onclick="javascript: $('#sec').hide('slow');$('#primary_company').find('option:first').attr('selected','selected');" type="radio" name="companyType" id="primary" checked />Primary</label>
        <label for="secondary"><input onclick="javascript: $('#sec').show('slow');" type="radio" name="companyType" id="secondary" />Subsidiary</label>              
    </p>

Затем он внезапно перестал работать (или я так думал). Я выполнил некоторую отладку и, наконец, понял, что он возвращает идентификатор «mitted_status ». В другом месте в моей форме у меня есть флажок с именем "Verified_status". Я понял, что когда я первоначально тестировал это, я должен был протестировать его на записях, где Approve_status имеет значение false. И теперь большинство моих утвержденных_статусов верны / проверены.

Я изменил код на это:

var id = $("input:radio[@name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {

И теперь он правильно возвращает «первичный» или «вторичный» в качестве идентификатора.

Итак, он работает, но кажется, что он вообще не проверяет имя, а теперь просто проверяет переключатели. Я просто хочу знать для будущего использования, что не так с оригинальным кодом b / c, я вижу, возможно, наличие 2 разных радиоприемников на странице, и тогда мое новое исправление, вероятно, не будет работать. Спасибо!

1 Ответ

2 голосов
/ 25 апреля 2010

Попробуйте это:

var id = $("input[name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...