Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery removeAttr不会删除Firefox中的禁用属性_Jquery_Firefox - Fatal编程技术网

Jquery removeAttr不会删除Firefox中的禁用属性

Jquery removeAttr不会删除Firefox中的禁用属性,jquery,firefox,Jquery,Firefox,下面的代码通过使用removeAttr函数删除disabled属性来解锁下拉列表。此示例在适用于Ubuntu的Mozilla Firefox 24中不起作用。但是,如果在RemoveAttr函数之后添加一个警报(如下一个示例中所示),则其效果非常好: $("#dropdown1").change(function() { $('#dropdown2').find('option').remove().end(); if (obj[$(this).v

下面的代码通过使用removeAttr函数删除disabled属性来解锁下拉列表。此示例在适用于Ubuntu的Mozilla Firefox 24中不起作用。但是,如果在RemoveAttr函数之后添加一个警报(如下一个示例中所示),则其效果非常好:

        $("#dropdown1").change(function() {
        $('#dropdown2').find('option').remove().end();
        if (obj[$(this).val()] !== undefined)
        {

            $('#dropdown2').removeAttr('disabled');
            $('#dropdown2').append('<option></option>' + obj[$(this).val()]);
            $('#dropdown2').attr('required', true);
        }
        else
        {
            $('#dropdown2').attr('disabled', true);
            $('#dropdown2').attr('required', false);
        }

    });
工作示例:

        $("#dropdown1").change(function() {
        $('#dropdown2').find('option').remove().end();
        if (obj[$(this).val()] !== undefined)
        {

            $('#dropdown2').removeAttr('disabled');
            alert("REMOVED");
            $('#dropdown2').append('<option></option>' + obj[$(this).val()]);
            $('#dropdown2').attr('required', true);
        }
        else
        {
            $('#dropdown2').attr('disabled', true);
            $('#dropdown2').attr('required', false);
        }

    });
使用.prop的示例也不起作用:

        $("#dropdown1").change(function() {
        $('#dropdown2').find('option').remove().end();
        if (obj[$(this).val()] !== undefined)
        {
            $('#dropdown2').prop('disabled', false);
            $('#dropdown2').append('<option></option>' + obj[$(this).val()]);
            $('#dropdown2').attr('required', true);

        }
        else
        {
            $('#dropdown2').prop('disabled', true);
            $('#dropdown2').attr('required', false);
        }

    });
您应该使用设置禁用的属性状态

使能

$('#dropdown2').prop('disabled', false);
禁用

$('#dropdown2').prop('disabled', true);
阅读:

来自文档]:

从jQuery1.6开始,.attr方法返回未定义的属性 这还没有确定。检索和更改DOM属性,如 表单元素的选中、选中或禁用状态使用 .道具法

所以你应该使用这个函数

$('#dropdown2').prop('disabled', false); // Enables the element
$('#dropdown2').prop('disabled', true ); // Disables the element
使用


disable true make disable元素和disable false Enable元素

关于.attr方法有很多文档。。。要检索和更改DOM属性,例如表单元素的选中、选中或禁用状态,请使用.prop方法。仅供参考,不要使用removeProp替换removeAttr,将属性设置为false,而不要设置为false。你可以共享相关的htmland对象的值吗?如果问题仍然存在,你应该创建一个复制此问题好吧,看来Select2插件正在搞乱这些下拉列表。一旦删除,一切正常。同样,仍然不起作用:$dropdown1.changefunction{$'dropdown2.find'option.remove.end;if obj[$this.val]!==未定义的{$'dropdown2.prop'disabled',false;$'dropdown2.append+obj[$this.val]$'dropdown2.attr'required',true;}否则{$'dropdown2.prop'disabled',true;$'dropdown2.attr'required',false;};同样的问题。不work@user1029829如果问题仍然存在,您应该创建一个JSFIDLE.net来重现这个问题。不起作用。
$('#dropdown2').prop('disabled', false);