2016-10-14 3 views
1

Я попытался обновить значение элемента input, используя .val(), и оказалось, что он не влияет на атрибут value="". После прочтения некоторых тем здесь, в stackoverflow, оказалось, что они не совпадают.Значение - свойство и атрибут

Я начал менять их обоих, чтобы убедиться, что я не делаю никакой ошибки есть: $("#elementid").val(variableNumber).attr('value', variableNumber);

Теперь, позволяет сказать, что я посылаю значение моего input для проверки его в PHP. Какой из них будет отправлен, если я сделаю их разными?

$("elementid").val(variable1); 
$("elementid").attr('value', variable2); 

Есть ли какие-либо правила на этом? или любой фактор, который делает одно из них отправленным как фактическое «значение»?

+1

Имущество отправляется. Тот факт, что атрибут не изменяется в DOM, не имеет никакого значения, поскольку это предполагаемое поведение. Я даже не стал бы настраивать его вручную, так как он избыточен. –

ответ

1

Какой из них будет отправлен ff, я делаю их разными?

Ввод текущее значение будет отправлено. Текущее значение отражается valueproperty. valueattribute представляет значение по умолчанию ввода, а не его текущее значение (и отражается как свойство defaultValue на input). Значение по умолчанию используется для инициализации значения при создании input и его сбросе, если вы используете метод reset формы, в которой он находится.

Если вы не хотите менять значение по умолчанию, вам не нужно устанавливать value атрибут, просто собственность. Свойство - это то, что изменяется val, что меняется, когда пользователь действует на вход, и что отправляется при отправке формы.

+1

Спасибо. Через 2 дня, когда я ломаю себе мозги, вы объяснили мне это понятным образом, и вам потребовалось 1 минуту ха-ха. Еще раз спасибо – divHelper11

+0

Сэр, не могли бы вы рассказать мне, где значение свойства скрыто в html? Я не уверен, можно ли найти его где-нибудь – divHelper11

+0

@ divHelper11: Свойство 'value' вообще не находится в HTML. HTML определяет элемент и его значение по умолчанию (через атрибут 'value'), но не его * текущее значение *. –

1

Когда вы работаете с <input type='text'>, я думаю, вы должны использовать attr('value', variableNumber); вместо val(value).

val(value) полезно при работе на объекте JQuery, содержащего элементы, такие как <input type="checkbox">, <input type="radio"> и <option>s внутри <select>. Дополнительная информация here.

Смежные вопросы