2014-01-27 22 views
0

我會告訴你們我用jsfiddles得到了什麼,因爲它使得它更容易解釋。 這是什麼樣的形式設置即時運行。 (只是顯示你的一些字段,不是全部)可以選擇特定的輸入字段javascript

http://jsfiddle.net/XK99Z/2/

當您更改輸入一個數字域的價格會立即改變了。 它使用這塊JS的爲:

function changeTotalFromCount(input) { 
    var unitPrice = parseFloat(input.getAttribute("data-unitPrice")); 
    var count = input.value; 

    var price = unitPrice * count; 
    var formattedPrice = '\u20ac ' + price.toFixed(2); 

    var label = input.parentNode.nextElementSibling; 
    label.innerHTML = ''; 
    label.appendChild(document.createTextNode(formattedPrice)); 
} 

當他們按下提交按鈕,他們將被帶到另一個頁面裏的順序是與他們的個人信息,打印按鈕和變更單按鈕。如果他們按變更單按鈕,他們將回到頁面這樣的:

http://jsfiddle.net/KPfUT/

正如你所看到的價格將不會顯示的數字旁邊的了,但有人幫我找到一個解決方案對於這個問題:

function initTotals() { 
    var inputs = document.getElementsByTagName('input'); 
    for (var i = 0; i < inputs.length; i++) { 
     changeTotalFromCount(inputs[i]); 
    } 
} 
window.onload = initTotals; 

http://jsfiddle.net/7LKf7/2/

現在有一個問題,它不會連同其他輸入字段,如姓名,電話號碼,ADRES等

工作

http://jsfiddle.net/Af724/1/

我希望有人能幫助我找到一個解決方案,這可能是讓JS知道我只希望,因爲所有的個人信息輸入欄的文本它爲input type="number"運行。

我遠沒有經驗豐富的JS所以請讓我知道如果你不明白我的問題或者你需要一些更多的信息,提前致謝!

回答

0

使用document.querySelectorAll(),只選擇類型= 「數字」 輸入元素:

var numberInputs = document.querySelectorAll('input[type="number"]'); 
for (var i = 0; i < numberInputs.length; i++) { 
    changeTotalFromCount(numberInputs[i]); 
} 

或檢查元素的類型:

var inputs = document.getElementsByTagName('input'); 
for (var i = 0; i < inputs.length; i++) { 
    if(inputs[i].getAttribute('type') == 'number') 
     changeTotalFromCount(inputs[i]); 
} 
+0

感謝的人!這完全符合我的想法,我很感謝您爲幫助我而付出的努力。 –

+0

不客氣! – sjkm