【问题标题】:Is there (should there be) any difference between native js defaultValue and jQuery prop(defaultValue)?原生 js defaultValue 和 jQuery prop(defaultValue) 之间有(应该有)区别吗?
【发布时间】:2014-07-04 21:57:25
【问题描述】:

我对原生 javascript defaultValue 功能有点困惑。我明白了,html输入的值必须设置,那个值就是初始的默认值。

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

//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 属性在 prop('defaultValue') 起作用时不起作用? 这些本质上不应该相同吗?初始值在输入元素中设置为 value="bla bla bla"。

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

【问题讨论】:

    标签: javascript jquery default-value


    【解决方案1】:

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

    name_person[0].defaultValue
    

    name_person.get(0).defaultValue
    

    【讨论】:

    • 好的。非常感谢!现在我明白为什么它不起作用了!
    【解决方案2】:

    Default Value in jquery using attr not prop

    只是尝试了解一些东西..sample 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
    
    
    
    });
    

    【讨论】:

    • 奇怪的是 attr("value") 与 prop("value") 不一样。您也希望使用 attr("value") 获得当前值。
    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 2019-09-23
    • 2010-09-15
    • 2013-06-13
    • 2015-08-19
    • 2012-02-16
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多