0

我有一个输入类型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>
4

2 回答 2

6

使用onchangeevent 来获取 select 的值,我假设disabled_inputid 只分配给一个输入字段,那么循环所有输入是没有意义的

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

在此处查看演示

于 2013-10-10T06:03:26.900 回答
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'});  
         }
     }
 });
于 2013-10-10T06:07:38.043 回答