可以选择特定的输入字段javascript

时间:2014-01-27 10:12:49

标签: javascript forms

我会告诉大家我用jsfiddles得到了什么因为它更容易解释。 这就是我现在正在运行的那种表单设置。 (只是向你展示一些领域,而不是全部)

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/

现在有一个问题,它不能与其他输入字段一起使用,如姓名,电话号码,地址等。

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

我希望有人可以帮我找到解决方案,让JS知道我只希望它运行input type="number",因为所有个人信息输入字段都是文本。

我在JS方面没有经验,所以如果您不理解我的问题或者您需要更多信息,请告诉我,提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用document.querySelectorAll()仅选择type =“number”输入元素:

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]);
}