1

我有我的 html 标记是这样的

<table id="sales-product-details">
  <tbody id="tableToModify">
    <tr>
        <td>
          <select id="prd_dtype1" class="discount-type" name="prddtype[]">
            <option value="">none</option>
            <option value="1">discount type 1</option>
            <option value="2">discount type 2</option>
            <option value="3">discount type 3</option>
          </select>
        </td>
        <td>
          <input type="text" class="dicount-price" onkeyup="calprice2(this.value,'1');" id="prd_damount1" name="prddamount[]">
        </td>
      </tr>
    </tbody>
  </table>

现在我想在 jQuery 中,当我从折扣类型的下拉列表中选择无时,折扣价格的输入文本字段将是只读的,当我选择除无以外的任何值时,折扣价格的输入文本字段将变成输入区(非只读)。任何帮助和建议都将是非常可观的。谢谢..

4

5 回答 5

4

使用 selectchange()事件获取选定的值并prop()更改输入的只读属性

 $('#prd_dtype1').change(function(){
    if(this.value == ""){
        $('#prd_damount1').prop('readonly',true);
     } else{
      $('#prd_damount1').prop('readonly',false);
   }
 }).change(); //<--- calling the change event here to make sure change event  is called as soon as the document is ready ...

或者简单的方法(没有条件)

 $('#prd_dtype1').change(function(){
    $('#prd_damount1').prop('readonly',!this.value);
 }).change();

并且如果您需要在未选择任何输入值时为空,那么您可以使用

 $('#prd_damount1').val('');

在第一个答案的 if 条件内。

在这里摆弄

于 2013-07-23T05:32:51.797 回答
2

尝试

$('#sales-product-details').on('change', '.discount-type', function(){
    var $this = $(this), val = $this.val();
    $this.closest('tr').find('.dicount-price').prop('readOnly', !val)
})

演示:小提琴

于 2013-07-23T05:34:21.210 回答
1
$("#prd_dtype1").change(function(){

   if($(this).val()==""){
      $(".dicount-price").attr("readonly",true);

   }else{
       $(".dicount-price").removeAttr("readonly");
}
});
于 2013-07-23T05:34:49.150 回答
0
$("#prd_dtype1").change(function(){

   if( $(this).val() == '' ){
      $("#prd_damount1").attr("readonly",false);
   }else{
       $("#prd_damount1").attr("readonly",true);
   }
});

检查 Js Fiddle http://jsfiddle.net/rGMKK/3/

于 2013-07-23T05:46:14.597 回答
0

$(函数(){

      $("#prd_damount1").attr("disabled", "disabled");


      $("#prd_dtype1").on("change", function () {

          console.log($(this).val());
          if ($(this).val() === "") {

              $("#prd_damount1").attr("disabled", "disabled");


          } else {

              $("#prd_damount1").removeAttr("disabled");


          }

      });


  });
于 2013-07-23T05:54:25.600 回答