如何在更改时从下拉值中删除输入属性

How to remove input attribute from dropdown value onchange?

本文关键字:删除 属性 输入      更新时间:2023-09-26

我的表单中确实有两个表单元素,如下所示。

<div class="col-xs-12 col-sm-9">
    <select class="input-medium"  name="state">
        <option value="0">-----------</option>
        <option value="ACT">ACT</option>
        <option value="NSW">NSW</option>
        <option value="VIC">VIC</option>
    </select>
</div>
<div class="form-group">
    <label class="control-label" for="suburb">Suburb:</label>
    <div class="col-xs-12 col-sm-9">
        <input type="text" name="suburb" id="suburb" class="col-xs-12 col-sm-4" disabled>
    </div>
</div>

我的问题是,只有当用户从下拉列表中选择一个选项时,我才需要从input中删除disabled属性。

我就是这样尝试的:

$('#state').on('change',function(){
    var inp = $('#suburb').get(0);
    if(inp.hasAttribute('disabled')) {
        inp.removeAttribute('disabled');
    }
    else {
        inp.setAttribute('disabled' , 'disabled');
    }
});

但这对我不起作用。希望有人能帮我。

我稍微更改了您的代码;

首先,我为组合框添加了id字段,然后删除了get-first-one语法以使用jquery,并将所有与属性相关的值更改为prop。

<select class="input-medium" id="state"  name="state">

我也进行了测试,这是有效的。

var inp = $('#suburb');
if($('#state').val() == '0') {
    inp.prop('disabled', true);    }
else {
    inp.prop('disabled', false);
}

再更新一次,我们可以在一行中写下这一次。

$('#state').on('change',function(){
    $('#suburb').prop('disabled', ($('#state').val() == '0'));
});

工作可以在上找到http://jsfiddle.net/h9vvacfq/8/