2014-05-08 61 views
1

我正在將jQuery定價計算器與購物車進行整合。我想更新一個隱藏的領域時.text();元素的值被改變。使用jQuery更新輸入字段.text();更改

這是我試圖更新字段:使用此jQuery的

<div class="orderRow server firewall" contain="firewall" id=""> 
    <div class="quantity"><span></span></div> 
    <div class="name">Firewall</div> 
    <div class="price orderPrice">$0</div> 
</div> 

<input id="firewall-price" type="hidden" name="price" value="" /> 

從這裏

$(document).ready(function(){ 
    var price = $(".firewall .price").text().substr(1); 

    $(price).change(function(){ 
     $("input[name=firewall-price]").val(price); 
    }); 
}); 

我不能得到的值輸入[name =防火牆價格]更改號碼時更新。我知道這樣做有點奇怪,但我只想從計算器中獲取最終值並將它們發送到購物車。

這裏是給DEV網站的鏈接:http://mindcentric.thelabelcreative.com/pricing_calculator/

+0

'$(價格)'是一個選擇器,用於查找其標籤名稱是「.price」字段文本內容的元素。您不能將事件處理程序綁定到字符串本身,只能綁定到DOM元素。 – Barmar

回答

0

嘗試更換:

$("input[name=firewall-price]").val(price); 

隨着

$("#firewall-price").val(price); 
0

胡安的答案是正確的,我會讓你知道爲什麼。

<input id="firewall-price" type="hidden" name="price" value="" /> 

沒有name屬性,這就是你要求jQuery選擇你的元素。

要讓代碼在不改變jQuery調用的情況下工作,只需將name屬性添加到輸入字段即可。在html中,當元素提交給服務器時,name屬性用於關聯鍵/值對。

0

Sahbeewah對於div上的更改事件是正確的。如果您能夠編輯main.js文件的內容,我會建議在lastPrice函數中添加您的邏輯。行451後添加

$('#firewall-price').val(correctPrice); 

$('#firewall-price').val(str); 

correctPrice是格式化和STR有美元符號和一個逗號。

+0

我確實可以訪問main.js文件,這絕對是我需要做的。問題是我想將每件商品作爲單獨產品傳遞到購物車中,而lastPrice函數計算整個交易的總價格。 – user3614447

0

由於一些答案已經表示你不能將更改事件綁定到文本值。

您可以更改事件然而綁定到輸入,所以你需要扭轉你的邏輯,而不是更新$(".firewall .price").text(),而不是更新的投入,改變事件綁定到輸入$('#firewall-price')並設置.price元素的基於text()關閉。

$(document).ready(function(){ 
    var $priceTextElement = $(".firewall .price"); 
    var $priceTextInput = $('#firewall-price'); 

    $priceTextInput.on('change', function(){ 
     $priceTextElement.text('$'+$priceTextInput.val()); 
    }); 
});