我必须使用元素单选按钮和文本字段:
<label><input id="GRP010" type="RADIO" value ="900">Radio button</label>
<input id="AF92" maxlength="254" size="15" name="AF92">
我想使用jquery来禁用文本字段,但是在选中单选按钮并且值相等时启用它。
到目前为止,我写了这个:
$(document).ready(function(){
var value2 = $('input:radio[name="GRP010"]').val();
var checked2 = $('input:radio[name="GRP010"]').is(':checked');
if (checked2 == true && value2 == '900') {
$("#AF92").attr("enabled", "enabled");
} else {
$("#AF92").attr("disabled", "disabled");
}
});
但是,如果选择单选按钮,文本字段将被禁用并且不会启用。我怎么做到这一点?感谢
答案 0 :(得分:2)
没有名为enabled
的属性仅被禁用,使用它执行此操作
$("#AF92").attr("disabled","disabled"); // will disable
$("#AF92").removeAttr("disabled"); // to enable
您还有其他问题。首先,您尝试使用不存在的错误属性name="GRP010
来定位您的输入,因为您有一个ID只是使用它。此外,单选按钮更改后,您没有事件处理程序来更改输入的状态,请参阅实时fiddle
此外,最好将输入启动为禁用。
这是事件处理程序
$('#GRP010').on('change', function(){
var checked = this.checked;
if(checked && value2 == '900')
$("#AF92").removeAttr("disabled");
else
$("#AF92").attr("disabled","disabled");
})
答案 1 :(得分:1)
要再次启用它,请使用:
$("#AF92").removeAttr("disabled")
答案 2 :(得分:1)
该函数绑定到ready
,因此仅在启动时进行检查。您需要在单击单选按钮时绑定以再次检查以启用禁用。
内部文件准备写。
$(".radioclass").click(function(){
if ($('#GRP010').val()) { //you actually don't need double check
$("#AF92").removeAttr("disabled");
} else {
$("#AF92").attr("disabled",true);
}
});
radioclass
为所有单选按钮提供公共类,或者为这些单选按钮使用您首选的选择器。
答案 3 :(得分:1)
使用
$(document).ready(function(){
var value2 = $("#GRP010").val();
var checked2 = $("#GRP010").is(':checked');
if (checked2 == true && value2 == '900')
{
$("#AF92").attr('readonly', false);
}
else {
$("#AF92").attr('readonly', true);
}
});
答案 4 :(得分:0)
你应该处理单选按钮更改事件
$("#GRP010").bind('change', handler);
function handler(){
var value2 = $('input:radio[name="GRP010"]').val();
var checked2 = $('input:radio[name="GRP010"]').is(':checked');
if (checked2 == true && value2 == '900')
{
$("#AF92").attr("enabled","enabled");
}
else {
$("#AF92").removeAttr("disabled");
}
}
它适合你。
答案 5 :(得分:0)
使用此
<label><input id="GRP010" type="checkbox" value ="900">CheckBox</label>
<input id="AF92" maxlength="254" size="15" name="AF92">
和Jquery
$(document).ready(function(){
$('#GRP010').on('change', function(){
if($('#GRP010').is(':checked') && $('#GRP010').val()== '900')
$("#AF92").removeAttr("disabled");
else
$("#AF92").attr("disabled","disabled");
});
});
答案 6 :(得分:0)
您正在使用的选择器正在寻找radio
属性为name
的{{1}}按钮 - 它没有。{1}}。由于您拥有ID,因此只需将其用作选择器:GRP010
答案 7 :(得分:0)
从1.6开始,您可以使用.prop()
$(function(){
var radio = $('#GRP010'),
txtInput = $('#AF92');
var changeState = function()
{
txtInput.prop("disabled", radio.is(':checked') && radio.val() == '900');
};
changeState ();
radio.change(changeState);
});