2015-01-21 2 views
0

동적으로 생성 된 입력 필드의 값을 변경하려고합니다. 동적으로 생성 된 입력 필드 jquery의 값 변경

시나리오 :

내가 add items라는 버튼을 클릭 할 때 itemname, unitsitemname가 jqueryui autocompleteworking great을 가지고있는 unitprice라는 이름으로 3 개 개의 입력 필드를 추가,하지만 난 또한 itemname fieldkeypress event을 나열하고 있습니다 그래서 사용자가 자동 ​​완성에서 필수 itemname을 선택한 후 enter를 누르면 사용자가 코드를 자동 완성하여 선택한 itemname의 단위와 가격을 받아야합니다.

var count = 1; 
    $('#add-items').click(function() { 
     $('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\ 
       <input type="text" name="units[]" id="units-' + count + '" size="10" placeholder="units" style="text-align: right"/>\n\ 
       <input type="text" name="unitprice[]" id="unitprice-' + count + '" size="10" placeholder="unit price" style="text-align: right"/>\n\ 
       <a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>'); 
     $('#itemname-' + count).autocomplete({ 
      source: "<?= site_url('administrator/item-autocomplete') ?>", 
      minLength: 2 
     }); 
     $('#itemname-' + count).on('keypress', function (e) { 
      var name = jQuery(this).val(); 
      var code = (e.keyCode ? e.keyCode : e.which); 
      if (code == 13) { 
       e.preventDefault(); 
       $.ajax({ 
        type: "POST", 
        url: "<?= base_url() ?>administrator/get-unit-and-price/", 
        data: {name: name}, 
        dataType: "json", 
        success: function (data) { 
         if (data.valid == true) { 
          //document.getElementById('units-' + count).value = data.unit; 
          //document.getElementById('unitprice-' + count).value = data.price; 
          $('#units-' + count).attr('value', data.unit); 
          $('#unitprice-' + count).attr('value', data.price); 
          //$('#units-' + count).val(data.unit); 
          //$('#unitprice-' + count).val(data.price); 
         } else { 
          alert(data.html); 
         } 
        } 
       }); 
      } 
     }); 
     count++; 
    }); 

모든 좋은 일, 그러나 그것의 단위 및 단가 값의 값을 변경하지, 나 또한 내가 더 무엇을해야하는지 궁금하고있는 data.unitdata.price 및 데이터베이스로부터 경고 적절한 값 ..

경고 시도 다른 사람이 도움이 ... :)

::::::::::::::::::::::::::EDIT:::::::::::::::::::::::::::::::

를 얻을 수 있도록

답변

0

솔루션을 게시 .. 그것이 영어 나쁜 죄송합니다 .. 사전에 감사를 제안 찾고 도움이 .. 작동하도록

덧붙여동적 입력 필드 itemname[]

-및 AJAX 성공 함수를 수정 :

지금
$('#units-' + thecount).attr('value', data.unit); 
$('#unitprice-' + thecount).attr('value', data.price); 

가지 난 또한 units[]unitprice[] 입력 필드의 값을 변경 Enter 키를 누르면, 작업되고

::::::::::::::updated solution::::::::::::::::

var count = 1; 
    $('#add-items').click(function() { 
     $('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input data-count="'+ count +'" type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\ 
       <input type="text" name="units[]" id="units-' + count + '" class="units" size="10" placeholder="units" style="text-align: right"/>\n\ 
       <input type="text" name="unitprice[]" id="unitprice-' + count + '" class="unitprice" size="10" placeholder="unit price" style="text-align: right"/>\n\ 
       <a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>'); 
     $('#itemname-' + count).autocomplete({ 
      source: "<?= site_url('administrator/item-autocomplete') ?>", 
      minLength: 2 
     }); 
     $('#itemname-' + count).on('keypress', function (e) { 
      var name = jQuery(this).val(); 
      var thecount = jQuery(this).data('count'); 
      var code = (e.keyCode ? e.keyCode : e.which); 
      if (code == 13) { 
       e.preventDefault(); 
       $.ajax({ 
        type: "POST", 
        url: "<?= base_url() ?>administrator/get-unit-and-price/", 
        data: {name: name}, 
        dataType: "json", 
        success: function (data) { 
         if (data.valid == true) { 
          $('#units-' + thecount).attr('value', data.unit); 
          $('#unitprice-' + thecount).attr('value', data.price); 
         } else { 
          alert(data.html); 
         } 
        } 
       }); 
      } 
     }); 
     count++; 
    }); 

덕분에 하나마다에 ....

관련 문제