如果值为“Runner”,则启用单选按钮,然后启用单选按钮,否则单选按钮将被禁用。下面的代码总是禁用按钮,我不知道为什么。
var role = $("#txtRole").val(empdata.EMPROLE.toString().toUpperCase());
if(role != 'Runner' || role != 'RUNNER') {
$("input[type=radio]").attr('disabled', true);
} else if(role == 'Runner' || role == 'RUNNER') {
$("input[type=radio]").attr('disabled',false);
}
答案 0 :(得分:0)
(忽略您的情况),您应该使用removeAttr('disabled')
代替attr('disabled', false)
。
此外,您的情况应该只是:
if (role !== 'RUNNER') {
$(...). attr('disabled', true);
}
else {
$(...). removeAttr('disabled');
}
答案 1 :(得分:0)
这在设置值时似乎有点令人困惑。我不知道它是否也会在设定后得到。
var role = $("#txtRole").val(empdata.EMPROLE.toString().toUpperCase());
设置后需要获取值:
// setter
$("#txtRole").val(empdata.EMPROLE.toString().toUpperCase());
// getter
var role = $("#txtRole").val().toUpperCase();
然后您可以设置或删除已禁用的属性
if( role != 'RUNNER' )
$("input[type=radio]").attr('disabled', 'disabled');
else
$("input[type=radio]").removeAttr('disabled');
如果该字段对用户进行了修改,我建议使用change
事件检查值。
$("#txtRole").on("change", function(){
var role = $("#txtRole").val().toUpperCase();
if( role != 'RUNNER' )
$("input[type=radio]").attr('disabled', 'disabled');
else
$("input[type=radio]").removeAttr('disabled');
});
当发生变化时:
$("#txtRole").val(empdata.EMPROLE.toString().toUpperCase());
$("#txtRole").trigger('change'); //just to be sure
它会自动被检查和修改。
答案 2 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$("#txtRole").val('Runner');
$("#txtRole").change(function()
{
var role = $("#txtRole").val().toUpperCase();
if(role != 'RUNNER')
{
$("input[type=radio]").prop('disabled', true);
}
else if(role == 'Runner' || role == 'RUNNER')
{
$("input[type=radio]").prop('disabled',false);
}
});
});
</script>
</head>
<body>
<input type='text' id='txtRole' />
<input type='radio'/>
</body>
</body>
</html>