Есть ли какое-то обоснование для val()
бесполезно для элементов управления флажками, тогда как полезно для получения входных данных последовательно через все остальные элементы управления?
например. для флажков по умолчанию всегда возвращается "on" независимо от состояния флажка. Для других элементов управления вводами, которые фактически не имеют атрибута "значение", например, select и textarea, он ведет себя так, как вы ожидали. См:
http://jsfiddle.net/jamietre/sdF2h/4/
Я не могу придумать, почему он не вернул true
или false
. В противном случае, по крайней мере, верните "on" только при проверке, а пустую строку - нет. В противном случае, по крайней мере, всегда возвращайте пустую строку, учитывая, что флажки не имеют атрибута value
!
Очевидно, я знаю, как получить значение с помощью attr
, но вот ситуация. Я разрабатываю простую (до сих пор) реализацию С# jQuery для разбора HTML-кода на сервере, и я стараюсь быть полностью верным реализации jQuery, поэтому он ведет себя последовательно либо на клиенте, либо на сервере с той же DOM. Но это просто кажется глупым, и мне нелегко заставить себя фактически закодировать "значение", чтобы вернуть "on" для флажка независимо от того, что. Но если я этого не сделаю, это не будет последовательным. Поэтому я пытаюсь понять, есть ли какая-то причина для этого? Это служит какой-то цели, или это просто какой-то артефакт? Кто-нибудь когда-либо использовал метод val()
против флажка, если да, то почему? Если нет, то почему архитекторы jQuery решили использовать этот подход, чтобы сделать его не полезным?