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

選択change()イベントを使用して、選択した値を取得し、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 に答える