Javascript / Jquery не может использовать 0 или 1 в качестве значения переменной? - PullRequest
2 голосов
/ 29 декабря 2010

У меня есть форма с полем выбора радио.Есть 6 вариантов.Значения этих опций - от 0 до 5. Я использую Jquery для получения значения отмеченного переключателя при отправке формы.

var nextStatus;
nextStatus = $j('input[name="Status"]:radio:checked').val();

Это прекрасно работает, когда статус 2 или выше,однако, когда статус равен 0 или 1, переменная вообще не устанавливается.Я не могу понять, почему было бы важно, чтобы значение кнопки выбора радио, равное 0 или 1, заставляло бы jquery / javascript не устанавливать эту переменную.

<label><input type='radio' name='Status' value='0' id='0' />Status0</label><br />
<label><input type='radio' name='Status' value='1' id='1' />Status1</label><br />
<label><input type='radio' name='Status' value='2' id='2' />Status2</label><br />
<label><input type='radio' name='Status' value='3' id='3' />Status3</label><br />
<label><input type='radio' name='Status' value='4' id='4' />Status4</label><br />
<label><input type='radio' name='Status' value='5' id='5' />Status5</label><br />

Когда я использую parseInt () для этой переменной,любой статус 2 или выше возвращается нормально, но если его 0 или 1, он возвращает NaN.Когда я использую typeof () в var, он возвращает «string» (после удаления parseInt ()).Я полностью озадачен этим.Я ДОЛЖЕН иметь возможность использовать 0 или 1 в качестве значения переменной, не так ли?

Если я изменю значения переключателя на 2-7 вместо 0-5, используя firebug, он работает нормально,Я бы предпочел не делать этого, так как этот выбор радиоизображения программно генерируется из базы данных с использованием внешних ключей, и было бы трудно изменить все это для проблемы, которая, насколько мне известно, даже не должна происходить.

Если кто-то сталкивался с этим, пожалуйста, помогите !!!

Ответы [ 2 ]

2 голосов
/ 29 декабря 2010

Возможно, стоит указать на это, в HTML 4 идентификатор ваших входных элементов s недействительны: они не должны начинаться с числовым символом. - Дэвид Томас 14 минут назад

Я добавил строку в начало идентификаторов, и это решило проблему!

0 голосов
/ 29 декабря 2010

у меня работает: http://jsfiddle.net/JYC3F/1/

Пожалуйста, создайте работающий урезанный тестовый пример, показывающий вашу проблему (желательно в JSFiddle).

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