是否(应该)本机js defaultValue和jQuery prop(defaultValue)之间有什么区别?

时间:2014-05-16 12:50:45

标签: javascript jquery default-value

我对本机javascript defaultValue功能感到困惑。我已经知道必须设置html输入的值,并且该值是初始默认值。

当我在click-event中使用它时,我想将特定的输入(文本)元素恢复为其默认值。 (取消按钮)

//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());

当prop(' defaultValue')执行时,为什么原生defaultValue属性不起作用?那些基本上不相同的吗?初始值设置为值=" bla bla bla"在输入元素中。

我让它工作(使用jQuery),但我只是想知道 - 我错过了什么?

2 个答案:

答案 0 :(得分:6)

它不起作用,因为name_person是一个jQuery对象而jQuery没有defaultValue。您需要引用DOM对象

name_person[0].defaultValue

name_person.get(0).defaultValue

答案 1 :(得分:0)

Default Value in jquery using attr not 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



});