javascript - 如果至少一个输入有值或者选择更改了默认值,则启用/禁用切换按钮

标签 javascript jquery html

来自this相关主题,用户留下一个解决方案并且它有效,我提供了第二部分,其中我忘记提及 SELECT 元素应用了 .select2() 。如果您在此处测试一个实例 Fiddle您将看到 button#btnBuscar 如何在输入更改并获取值时或当 SELECT 更改默认选项时启用,但如果我从 INPUT 中删除值或在 SELECT 中选择回默认选项,则按钮不会被禁用,所提供的解决方案的错误在哪里:

$(':input').on('input change', function () {
    var completed = $(':input').filter(function () {
        return !!this.value;
    }).length > 0;
    $('button#btnBuscar').prop('disabled', !completed);
});

最佳答案

您可以更改:

<option selected="selected" value="-1">-- SELECCIONAR --</option>

致:

<option selected="selected" value="">-- SELECCIONAR --</option>

或者将js代码调整为:

$(function(){
    $('select.toSelect2').select2();

    $(':input').on('input change', function () {
        var completed = $(':input').filter(function () {
            return !!this.value && !$(this).is('select') || 
                   (this).is('select') && +this.value > -1;
        }).length > 0;
        $('button#btnBuscar').prop('disabled', !completed);
    });        
});

DEMO

关于javascript - 如果至少一个输入有值或者选择更改了默认值,则启用/禁用切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413139/

相关文章:

javascript - 我应该像构造函数大写一样将原型(prototype)对象的第一个字母大写吗?

javascript - 组件正在将电子邮件类型的不受控制的输入更改为受控制。输入元素不应从不受控切换到受控

javascript - CSS-HTML |通过 css 修复背景

javascript - 在运行时有问题的附加项上添加内联样式

jquery - HTML 表单提交概念性问题

html - 需要帮助让 DIV 进入 DIV 以拉伸(stretch)到 Firefox 中内容的宽度

javascript - 鼠标单击和按键具有相同的功能

javascript - 在字符串中查找字符串

javascript - 在 For 语句中使用 Query 时如何解决响应问题

javascript - 如何将类添加到动态创建的 DOM 元素或类中