当选择右选择值时,JQuery启用/禁用输入

时间:2013-10-10 05:50:04

标签: javascript php jquery html

我的输入类型为select,输入类型为text。我想要的是当我在选择输入中选择“其他”项时,其他输入类型文本将启用,否则它将被禁用。我这里有代码,我可能会错过这里的东西。

<script type='text/javascript'>

    var others = $('select[name="facility"]').val()
    $().ready(function() {
        if(others == "Others"){
            $('input').each(function() {

                if ($('#disabled_input').attr('disabled')) {
                    $('#disabled_input').removeAttr('disabled');
                }
                else {
                    $('#disabled_input').attr({
                        'disabled': 'disabled'
                    });
                }

            });
        }
        });
    });
</script>

2 个答案:

答案 0 :(得分:6)

使用onchange事件获取select的值,我假设disabled_input id仅分配给一个输入字段,那么无意间遍历所有输入

<script type='text/javascript'>
$(document).ready(function() {
$('#disabled_input').attr('disabled','disabled');        
$('select[name="facility"]').on('change',function(){
var  others = $(this).val();
    if(others == "Others"){           
    $('#disabled_input').removeAttr('disabled');          
     }else{
     $('#disabled_input').attr('disabled','disabled'); 
    }  

  });
});
</script>

See demo here

答案 1 :(得分:0)

我认为这里不需要each。 对于每次迭代,它都会检查if ($('#disabled_input').attr('disabled')) 你可以直接检查

var others = $('select[name="facility"]').val();
 $(document).ready(function () {//missing document
     if (others == "Others") {
//no need of each here
         if ($('#disabled_input').attr('disabled')) {
         $('#disabled_input').removeAttr('disabled');
         } 
         else {
         $('#disabled_input').attr({'disabled': 'disabled'});  
         }
     }
 });