$ ("input: selected"). длина не работает в опере после возврата в историю браузера - PullRequest
4 голосов
/ 03 апреля 2011

У меня есть JavaScript с этим кодом:

$("input:checked").length 

После нажатия кнопки «Назад» в браузере этот код $ («input: selected»). Length; не работает в опере. Что я могу сделать?

В основном мне нужно проверить, были ли отмечены две радиокнопки или нет

        <script>
    $(document).ready(function () {

        $("#signup").button();

        $("#signup").click(function () {

            alert($("#bb input:checked").length);
            if ($("#bb input:checked").length == 2) {
                $("#signup").val("1");                
            }
        });
    });
</script>

@using (Html.BeginForm())
{

<div id="wrapper">

    <div id="bb"> 
       <div id="rbl1" class="rbl1">
           <input type="radio" id="rb11" name="radio-b1" value="1"/><label for="rb11" class="radio">Everyday</label>
           <input type="radio" id="rb12" name="radio-b1" value="2"/><label for="rb12" class="radio">Saturday</label>
        </div>        

        <div id="rbl2" class="rbl2">
           <input type="radio" id="rb21" name="radio-b2" value="1"/><label for="rb21" class="radio">One</label>
           <input type="radio" id="rb22" name="radio-b2" value="2"/><label for="rb22" class="radio">Two</label>
        </div>
    </div>

</div>

<button name="submit" id="signup">Sugn up</button>
}

В первый раз он работает хорошо во всех браузерах, после того, как переключатели проверены, я отправляю свою форму в то время, все хорошо. Но потом я просто проверил, что произошло, если я вернусь в историю браузера и снова отправлю форму, поэтому все браузеры в порядке, кроме Opera, в этой строке кода происходит сбой $ ("# bb input: checked"). Length == 2) и не уточнил почему.

До того, как я использовал jQuery 1.5.1, теперь я обновился до 1.5.2 и все еще та же проблема. Обновлен подробный пример кода, полный HTML-код размещен здесь http://sourcepod.com/puvmmz30-4571

Возможно, что-то не так с историей Оперы.

Есть ли еще способ установить значение $ ("# signup"). Val ("1"); или проверьте, выбран ли список радио ("#bb input: selected") и история Opera не очистила это.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2013

Я могу воспроизвести эту проблему, используя Opera 12.12 и jQuery 1.6.1.Я не могу воспроизвести это, если я обновляю jQuery до 1.9.1.

Если вы не можете обновить версию jQuery, вы можете получить правильное проверенное значение, используя .each () и value.checked.

См .: $ (". Ввод причины"). Каждый (функция (индекс, значение) {console.log (value.checked, value)})

Возвращает правильные значения для флажка.

0 голосов
/ 03 апреля 2011

Вы пытались использовать size() вместо length?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...