Есть ли (должна быть) какая-либо разница между нативным js defaultValue и jQuery prop(defaultValue)?
Я немного смущен нативной функциональностью defaultValue в javascript. Я понял, что значение ввода html должно быть установлено, и это значение является начальным значением по умолчанию.
Я хотел восстановить определенный элемент ввода (текст) в его значение по умолчанию, когда у меня есть это внутри click-события. (Кнопка отмены)
//Restore values
var name_person = $(this).find('.nameOfPerson');
//Attempt 1
name_person.val(name_person.defaultValue);
alert('restored value=' + name_person.val()); //This alerts nothing
//Attempt 2
name_person.val(name_person.prop('defaultValue')); //This alerts the default value
alert('restored value=' + name_person.val());
Почему собственный атрибут defaultValue не работает, когда проп ('defaultValue') работает? Разве они не должны быть одинаковыми? Начальное значение задается значением value="bla bla bla" во входном элементе.
Я получил его на работу (с jQuery), но мне просто интересно - я что-то упустил?
2 ответа
Это не работает, потому что name_person
является объектом jQuery, а jQuery не имеет defaultValue
, Вам нужно сослаться на объект DOM
name_person[0].defaultValue
или же
name_person.get(0).defaultValue
Значение по умолчанию в jquery с использованием attr, а не prop
просто попытайтесь узнать кое-что.. пример HTML
<input type="text" name="usrname" value="default"><br>
<input type="submit" value="Submit">
JS
$("input[type=submit]").click(function(){
$("input[type=text]").val(1);
alert($("input[type=text]").prop("value")); // it will return 1
alert($("input[type=text]").attr("value")); // it will return default value
alert($("input[type=text]")[0].defaultValue); // @epascarello posted return default value
});