在文本字段值上启用单选按钮

时间:2016-10-04 05:21:50

标签: javascript jquery

如果值为“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);
}

3 个答案:

答案 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>