jQuery / JS-CSS正在工作,但attr无法工作

时间:2019-06-03 13:37:13

标签: javascript jquery

我正在尝试在某个条件后禁用输入,但我不明白为什么这不起作用。我尝试使用$("#exemplaire_50001_0").attr('disabled', true);$("#exemplaire_50001_0").prop('disabled', true);,但是两者都没有改变。我正在使用Jquery 1.5.1,因此我认为必须使用.attr

当我添加       $("#exemplaire_50001_0").css("background-color", "red"); 到我的选择器,这样背景就会变成红色。

我的问题是,为什么.css起作用而.prop.attr却不起作用?问题出在哪里?是否还有其他解决方案可以使用jquery禁用输入?

代码:

 var test = $('#num_cppap').val();
 var test2 = test.substr(0,3);
 console.log(test2);
 if(test2 == "AIP"){
     $("#exemplaire_50001_0").css("background-color", "red");
     $("#exemplaire_50001_0").attr('disabled', true);
 }

html(这是我如何构建HTML(使用ZendFramework)):

enter image description here

导航渲染:

enter image description here

3 个答案:

答案 0 :(得分:0)

here所述:

  

jQuery 1.5及更低版本

     

.prop()函数不存在,但是.attr()具有类似功能:

     

设置禁用的属性。

$("input").attr('disabled','disabled'); 
     

要再次启用,正确的方法是使用.removeAttr()

$("input").removeAttr('disabled');

var text = $("#text");
var btn = $("#btn");

btn[0].onclick = function() {
	text.attr('disabled', 'disabled');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<input id="text" value="toto" />

<button id="btn">
  click me
</button>

答案 1 :(得分:0)

你能看看这个吗,我举了一个例子:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<div id="tableNiveau" class="declare">
  <table id="tableNivPrep" class="tabData" border="0" style="display:block">
    <thead>
      <tr class="entete">
        <th colspan="2" rowspan="2" class="entete">Préparation</th>
        <th colspan="2" class="entete">Déclaré</th>
        <th colspan="2" rowspan="2" class="entete">Option</th>
        <th colspan="2" rowspan="2" class="entete" style="width:20%">Offre grand compte</th>
      </tr>
      <tr class="entete">
        <th class="entete">Exemplaires</th>
        <th class="entete">Paquets</th>
      </tr>
    </thead>
    <tbody>
      <tr id="50001" class="odd">
        <td>Edition LDQL</td>
        <td></td>
        <td><input type="hidden" value="" name="idPrepa_50001_0"><input type="text" value="" name="exemplaire_50001_0" id="exemplaire_50001_0" class="saisie nivPrep Edition" style="text-align: right; background-color: red;" onkeyup="calculTotauxDeclare()"
            onkeypress="return chiffres(event);"></td>
        <td></td>
        <td></td>
        <td><select name="option_preparation_50001_0" id="option_preparation_50001_0"><option value="">Choix de l'option</option><option value="81000800">LOCAL                                             </option><option value="81000801">Standard                                          </option><option value="81000802">DIRECT                                            </option><option value="81000803">DepotCTC                                          </option><option value="81000804">DepotCDIS                                         </option></select></td>
        <td
          style="text-align:center;"><input type="checkbox" name="zone_dense_50001" id="zone_dense_50001">
          </td>
      </tr>
Failed<string>

答案 2 :(得分:-2)

您必须像下面那样更正您的代码:

来自

$("#exemplaire_50001_0").attr('disabled', true);

$("#exemplaire_50001_0").attr('disabled', 'disabled');

以上代码是用于禁用的,如果要启用它,则必须删除禁用属性,如以下代码所示:

$("input").removeAttr('disabled');