2013-03-10 46 views
0

。我有一個只是不合作的購物車。當結帳按鈕被擊中時,除了提交表單之外,還需要將一些代碼發送回從每行字段中提取的服務器。從每個元素子字段獲取變量

的HTML(簡體版)

<div class="row"> 
<input type="text" readonly="readonly" class="pp_name" value="Sample product"> 
<input type="hidden" class="pp_id" value="1234"> 
<input type="hidden" class="pp_stock" value="5"> 
</div> 

<div class="row"> 
<input type="text" readonly="readonly" class="pp_name" value="Another item"> 
<input type="hidden" class="pp_id" value="7456"> 
<input type="hidden" class="pp_stock" value="2"> 
</div> 

<div class="row"> 
<input type="text" readonly="readonly" class="pp_name" value="Some other thing"> 
<input type="hidden" class="pp_id" value="9121"> 
<input type="hidden" class="pp_stock" value="3"> 
</div> 

<input type="submit" value="Checkout" id="checkout"> 

我需要在提交輸出的腳本(它發送我的服務器更新的股票數爲每個項目,要求從API庫函數):

$('#checkout').click(function(){ 

$('.row').each(function(){ 
var itemId = $('.pp_id').val; 
var fieldId = 100;  // This var is a constant, static value 
var newStockcount = $('.pp_stock').val; 
setapikey(1234567890); 
setMetadata(itemId, fieldId, newValue,); 
}); 

}); 

編寫此腳本時我嘗試過的每一個變體都無法獲取每行中字段的值。 setMetadata函數沒有錯,我在無數網站上使用它沒有問題。它只是將它從田野裏變成不可行的變種。

即使我設置一個ID爲每一行,並用它來查明領域,它沒有好,即 $( '#結賬')。點擊(函數(){

$('.row').each(function(){ 

$(this).attr('id', 'active_checkout_row'); //SET ID 

var itemId = $('.pp_id').val; 
var fieldId = 100; 
var newStockcount = $('.pp_stock').val; 
setapikey(1234567890); 
setMetadata(itemId, fieldId, newValue,); 

$(this).attr('id', 'inactive_checkout_row'); //UNSET ID 

}); 

我去過它兩天,所以如果一些有用的靈魂能告訴我,我要去哪裏錯了,我會非常感激

即使是使用下面的產量沒有結果。

var anyVariable = document.getElementById('active_checkout_row').getElementsByClassName('pp_name').value; 

回答

1

你幾乎在那裏傑爾我的,

當你迭代每一行時,你需要找到每個子元素。目前,當您迭代每行時,您正在使用$('。pp_id')進行全局搜索,但您實際想要執行的操作是找到.pp_id,這是您當前所在行的子項。

此外,在jQuery中,您需要調用.val()括號來獲取實際值。

這是一個jsFiddle取得你想要的。

HTM保持不變。

JS:

$('#checkout').click(function(){ 

    $('.row').each(function(){ 
    var itemId = $(this).find('input.pp_id').val(); 
    var fieldId = 100;  // This var is a constant, static value 
    var newStockcount = $(this).find('input.pp_stock').val(); 
     console.log('itemid:'+itemId+' fieldId:'+fieldId+' newStockcount:'+newStockcount); 
    }); 

}); 
+0

託尼,你做我的一週。非常感謝! – 2013-03-10 03:52:42