jQuery属性禁用不工作

jQuery属性禁用不工作,jquery,Jquery,我试图禁用和删除jQuery中的一些属性,但当值被更改并设置为禁用某些字段时,它似乎不起作用。此脚本在下拉框的值更改时运行 此处代码如下: $(".tipo_frete").change(function(){ if($(this).val() == "FOB" ){ $(".id_transp").attr("disabled"); $(".id_transp").val(""); $(".nome_transp").attr("dis

我试图禁用和删除jQuery中的一些属性,但当值被更改并设置为禁用某些字段时,它似乎不起作用。此脚本在下拉框的值更改时运行

此处代码如下:

$(".tipo_frete").change(function(){
    if($(this).val()  == "FOB" ){
        $(".id_transp").attr("disabled");
        $(".id_transp").val("");
        $(".nome_transp").attr("disabled");
        $(".nome_transp").val("");
        $(".valor_frete").attr("disabled");                     
        $(".valor_frete").val("");                      
    }else{
        $(".id_transp").removeAttr("disabled");
        $(".valor_frete").removeAttr("disabled");           
        $(".nome_transp").removeAttr("disabled");           
    }
});
我在这里做错什么了吗?

使用

禁用

使能

注:$.id\u transp.attr已禁用;必须传递两个参数,如$.id\u transp.attrdisabled、true

简化代码

$(".tipo_frete").change(function () {
    if ($(this).val() == "FOB") {
        $(".id_transp,.nome_transp,.valor_frete").val("").prop("disabled", true);
    } else {
        $(".id_transp,.nome_transp,.valor_frete").prop("disabled", false);
    }
});
使用

禁用

使能

注:$.id\u transp.attr已禁用;必须传递两个参数,如$.id\u transp.attrdisabled、true

简化代码

$(".tipo_frete").change(function () {
    if ($(this).val() == "FOB") {
        $(".id_transp,.nome_transp,.valor_frete").val("").prop("disabled", true);
    } else {
        $(".id_transp,.nome_transp,.valor_frete").prop("disabled", false);
    }
});

元素等于选择器'.id_transp'

  var $element = $(...);
        $element.prop('disabled', true);
        $element.attr('disabled', true); 

        // The following do not require jQuery
        $element.get(0).disabled = true;
        $element.get(0).setAttribute('disabled', true);
        $element[0].disabled = true;
        $element[0].setAttribute('disabled', true);

元素等于选择器'.id_transp'

  var $element = $(...);
        $element.prop('disabled', true);
        $element.attr('disabled', true); 

        // The following do not require jQuery
        $element.get(0).disabled = true;
        $element.get(0).setAttribute('disabled', true);
        $element[0].disabled = true;
        $element[0].setAttribute('disabled', true);

是,attr属性中缺少另一个参数。 试试这个:

$(".tipo_frete").change(function(){
    if($(this).val()  == "FOB" ){
        $(".id_transp").attr("disabled","disabled");
        $(".id_transp").val("");
        $(".nome_transp").attr("disabled","disabled");
        $(".nome_transp").val("");
        $(".valor_frete").attr("disabled","disabled");                      
        $(".valor_frete").val("");                      
    }else{
        $(".id_transp").removeAttr("disabled");
        $(".valor_frete").removeAttr("disabled");           
        $(".nome_transp").removeAttr("disabled");           
    }
});

但是,当您删除这些attibutes时,您只在其中保留一个参数,它将被删除

是,attr属性中缺少另一个参数。 试试这个:

$(".tipo_frete").change(function(){
    if($(this).val()  == "FOB" ){
        $(".id_transp").attr("disabled","disabled");
        $(".id_transp").val("");
        $(".nome_transp").attr("disabled","disabled");
        $(".nome_transp").val("");
        $(".valor_frete").attr("disabled","disabled");                      
        $(".valor_frete").val("");                      
    }else{
        $(".id_transp").removeAttr("disabled");
        $(".valor_frete").removeAttr("disabled");           
        $(".nome_transp").removeAttr("disabled");           
    }
});

但是,当您删除这些attibutes时,您只在其中保留一个参数,它将被删除

在jQuery中,当您想获取属性值时,必须使用.attr'key'或.prop'key'和一个参数,但当您想为属性设置值时,必须设置两个参数,如.attr'key'、.value'或.prop'key'、.value'


在jQuery中,当您想要获取属性值时,必须使用带有一个参数的.attr'key'或.prop'key',但当您想要为属性设置值时,必须设置两个参数,如.attr'key',value'或.prop'key',value'


这是一个完整的。它试图在removeAttr的参数中传递两个参数,而不是在attr中传递。谢谢它成功了,这是一个完整的过程。它试图在removeAttr的参数中传递两个参数,而不是在attr中传递。谢谢根据答案,我认为这个问题没问题,所以我将投票重新开始。不过,我们会看到,它可能会因为有太多的利基解决方案而关闭。根据答案,我认为这个问题是可以的,所以我将投票重新打开。不过,我们将拭目以待,它可能接近于有太多的利基解决方案。