2017-03-13 20 views
0

在我的發票表單上,用戶可以點擊按鈕添加儘可能多的零件,然後下面的代碼自動填寫零件描述和零件價格。Loop ajax調用

我試圖環,但它不工作,而不是我增加了對partnumber1,partnumber2,partnumber3等

<script type="text/javascript"> 

$("#partstable").on('blur keyup', "#partnumber" , function() { 

searchString=$(this).val(); 

    var data = 'partnumber='+searchString; 

    if(searchString) { 
     // ajax call 

     $.ajax({ 
      type: "POST", 
      url: "partpricequery.php", 
      data: data, 

      success: function(html){ 

result = String(html).split("|"), 

$("#partdescription").val(result[0]); 
$("#partprice").val(result[1]); 

showlabel(); 

     } 
     });  
    } 
    return false; 
}); 

</script> 

第二多個腳本一個

<script type="text/javascript"> 

$("#partstable").on('blur keyup', "#partnumber1" , function() { 

searchString=$(this).val(); 

    var data = 'partnumber='+searchString; 

    if(searchString) { 
     // ajax call 

     $.ajax({ 
      type: "POST", 
      url: "partpricequery.php", 
      data: data, 

      success: function(html){ 

result = String(html).split("|"), 

$("#partdescription1").val(result[0]); 
$("#partprice1").val(result[1]); 


showlabel(); 

     } 
     });  
    } 
    return false; 
}); 

</script> 
<script type="text/javascript"> 

$("#partstable").on('blur keyup', "#partnumber2" , function() { 

searchString=$(this).val(); 

    var data = 'partnumber='+searchString; 


    if(searchString) { 
     // ajax call 

     $.ajax({ 
      type: "POST", 
      url: "partpricequery.php", 
      data: data, 

      success: function(html){ 

result = String(html).split("|"), 


$("#partdescription2").val(result[0]); 
$("#partprice2").val(result[1]); 

showlabel(); 

     } 
     });  
    } 
    return false; 
}); 

</script> 

這就是我試圖循環它,但又不工作

<script type="text/javascript"> 

var count = 0; 
$("#partstable").on('blur keyup', "#partnumber"+count , function() { 

searchString=$(this).val(); 

    var data = 'partnumber='+searchString; 

    if(searchString) { 
     // ajax call 

     $.ajax({ 
      type: "POST", 
      url: "partpricequery.php", 
      data: data, 

      success: function(html){ 

result = String(html).split("|"), 

var counter=0; 
loop{ 
$("#partdescription"+counter).val(result[0]); 
$("#partprice"+counter).val(result[1]); 
counter++; 
} 

showlabel(); 

     } 
     });  
    } 
    return false; 
}); 

</script> 
+0

你的意思是'爲(VAR ('...','#partnumber「+ count,...);'? – maraca

+0

我不想要多個腳本,我只是想要one。無論他們添加了多少個輸入字段,用戶都可以輸入零件編號an它會自動填寫描述和價格。即使用戶添加了20個輸入字段。 – JD6969

回答

0

我認爲你的問題是count變量將有最後一次執行後的值。這是一個實驗來驗證(link):

for (var count = 0; count < 3; count++) { 
    $('#btn' + count).on('click', function() {alert(count);}); 
} 

假設有3個按鈕與IDS btn0,BTN1和BTN2,但是你單擊該警報的按鈕,無論在循環結束之後將始終顯示3(價值)。

一個醜陋的解決辦法是建立與Function函數的函數(link):

Function("alert(" + count + ");") 

或者你可以創建一個匿名函數(link):

for (var count = 0; count < 3; count++) { 
(function(count) { 
    $('#btn' + count).on('click', function() {alert(count);}); 
})(count); 
}