javascript - 根据选择启用/禁用输入 (jQuery)

标签 javascript jquery html css

<select name="state" class="select" id="state">
    <option value="something">Something</option>
    <option value="other">Other</option>
</select>

<input type="text" name="province" class="text" id="province" />

jQuery

$('#state').change(function () {
    if ($('#state Other:selected').text() == "Other"){
        $('#province').attr('disabled', false);
        alert(1);
    } else {
        alert(2);
    }
});

好像不行。我一定是做错了什么。

最佳答案

你应该使用 .removeAttr('disabled') 而不是 .attr('disabled', false) .你也应该 cache your jQuery selectors .

编辑:事后思考这个问题。如果禁用它,您可能希望“清空”输入到字段中的文本,因此我添加了 .val('')。 , 如果你也想隐藏它,你可以添加 .hide().show()两种情况。

我放在一起this fiddle向您展示一个工作版本:

var $state = $('#state'), $province = $('#province');
$state.change(function () {
    if ($state.val() == 'other') {
        $province.removeAttr('disabled');
    } else {
        $province.attr('disabled', 'disabled').val('');
    }
}).trigger('change'); // added trigger to calculate initial state

.trigger('change') 将“触发”一个更改事件,在您绑定(bind)它时有效地运行该函数一次。这样,#province将根据运行代码时选择的状态禁用/启用。没有它,即使该州不是“其他”,该省也将可用,除非您还添加了 disabled='disabled'<input>在您的 html 中标记。

关于javascript - 根据选择启用/禁用输入 (jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597093/

相关文章:

javascript - 如何使对象 float 在不同标签的右下角

javascript - 相当于 Internet Explorer 中的 "parentNode"

javascript - 动态大数据插入文本区域碾压 Chrome

javascript - 尝试将事件类添加到菜单项

javascript - 检查返回 true 失败

html - 使用 Angular 动画制作动画词

javascript - 如何在firebase中存储每个用户的对象列表

javascript - 您如何将一个 min JS 文件添加到 Wordpress 中,然后调用我的主题上的脚本标签?

javascript - PHP/CSS/JS - 在保留文档标题的同时禁用打印按钮

java - 让 JSF 吐出一个 HTML 搜索字段。可行吗?