键入时javascript删除属性

时间:2014-07-02 05:35:10

标签: jquery

如果我点击“SAME”值是默认= 6但是当我点击“错误”时,用户可以输入新值

问题  当我输入启用文本字段并且需要单击“SAME”

时,值不会更改
<button id="same">Wrong</button>
<button id="true">True</button>
<button id="false">False</button>
<input id="test" value=""/> 



$('#same').click(function() {
if ($(this).text() === 'Wrong') {
     $(this).text('Same');
     $('#true').prop('disabled',true);
     $('#false').prop('disabled',true); 
     $('#test').attr('value','6').prop('disabled',true);
}
else {
    $(this).text('Wrong');
     $('#true').prop('disabled',false);
     $('#false').prop('disabled',false);
     $('#test').attr('value','').prop('disabled',false);
}});

Demo

3 个答案:

答案 0 :(得分:2)

尝试在此上下文中使用.val()。因为.attr()会更改该输入元素的属性,但不会更改显示的值。并且它仅在页面加载时首次呈现更改。

$('#same').click(function() {
    if ($(this).text() === 'Wrong') {
         $(this).text('Same');
         $('#true').prop('disabled',true);
         $('#false').prop('disabled',true); 
         $('#test').val('6').prop('disabled',true);
    }
    else {
        $(this).text('Wrong');
         $('#true').prop('disabled',false);
         $('#false').prop('disabled',false);
         $('#test').val('').prop('disabled',false);
    }
});

DEMO

答案 1 :(得分:1)

要更改当前显示的值,请使用:

$('#test').val('6');

而不是:

$('#test').attr('value','6');

初始显示值来自value属性,但在此之后,通过更改.value属性(而不是属性)来修改当前值,这是.val()的作用。

答案 2 :(得分:1)

要使用jQuery分配值,只需使用val();方法

在您的代码中只需更改

即可

$('#test').attr('value','6').prop('disabled',true);

`$('#test').val('6').prop('disabled',true);

$('#test').attr(value,'').prop('disabled',false);

$('#test').val('').prop('disabled',false);