Там нет синтаксической ошибки в коде. Если у кода была синтаксическая ошибка, в консоли Firebug (а не в панели «Наблюдение») появится сообщение об ошибке, и код не будет запущен вообще. Ты никогда не доберешься до точки останова.
Синтаксические ошибки на вашем скриншоте содержатся в ваших часах. Удалите выражения часов, и эти сообщения об ошибках исчезнут.
В обновленном скриншоте я вижу, что такое синтаксическая ошибка. Всмотритесь в вашем выражении часы (переформатирован здесь, чтобы избежать прокрутки):
if(
(radioval === "undefined") ||
(radioval === null) ||
(radioval === "null")
)
Это не выражение, что это if
заявление. Если вы хотите использовать его в качестве выражения часов, вам нужно просто выражение внутриif
. То есть, удалите if(
и окончательный )
.
Что касается конкретных тестов, которые вы делаете, метод .val()
jQuery возвращает undefined
, если элементов нет. Обратите внимание, что в документации jQuery есть ошибка: он говорит, что .val()
возвращает null
, когда нет соответствующих элементов. Это неверно; он возвращает undefined
в этом случае. Вот the line of code in the jQuery source, который возвращает undefined
(потому что это простой return;
без значения).
Но это значение undefined
, а не строка "undefined"
. Вы проверили бы это с помощью radioval === undefined
. Или вы можете использовать radioval == null
. Обратите внимание на ==
вместо ===
; этот тест соответствует значениям null
и undefined
. Это может быть самая безопасная ставка, если команда jQuery когда-либо решает изменить код в соответствии с документацией и начать возвращать null
вместо undefined
. (Маловероятная возможность, но вы никогда не знаете.) Проведя тестирование radioval == null
, он будет тестировать любое значение.
@AlexFilipovici почему это? –
@AlexFilipovici Я положил === для строгого сравнения. Хотя я тоже тестировал с ==. –
В этом нет ничего плохого. – gdoron