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

Toggle button enabled/disabled if at least one input has values or if a select changes the default value

本文关键字:启用 默认值 按钮 输入 有一个 选择 如果      更新时间:2023-09-26

从这个相关的主题开始,用户留下了一个解决方案,它可以工作,我在第二部分中忘记了SELECT元素应用了.select2()。如果你在这个Fiddle上测试一个实际的例子,你会看到button#btnBuscar是如何在任何时候输入改变并获得值的,或者SELECT改变默认选项时启用的,但如果我从INPUTs中删除值,或者在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