如果我点击“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);
}});
答案 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);
}
});
答案 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);