选择特定输入字段JavaScript的可能性



我会向你们展示我使用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/

现在有一个问题,它不会与其他输入字段一起使用,例如名称,电话号码,adres等。

http://jsfiddle.net/af724/1/

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

我在JS中差一点,所以如果您不了解我的问题或您需要更多信息,请告诉我,谢谢!

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

最新更新