目前我有一个函数可以在div(inputsite
)中添加所有输入,然后从另一个输入(siteinput
)中减去该总数。这工作得很好,但我已经在包含文本的div中添加了更多输入;这将调用“不可读数字”警报:
function site_change() {{
var sites= document.getElementById('sitesinput').value;
var sum= 0;
var inputs= document.getElementById('inputsite').getElementsByTagName('input');
for (var i= inputs.length; i-->0;) {
var v= inputs[i].value.split(',').join('.').split(' ').join('');
if (isNaN(+v))
alert(inputs[i].value+' is not a readable number');
else
sum+= +v;
}
var phones= document.getElementById('phonesinput').value;
document.getElementById('siteresult').innerHTML = phones-sum;
};
}
需要包含的输入示例如下:
<input name="site1" type="text" size="3" value="0" />
这需要排除在外:
<input name="site1PC" type="text" size="7" maxlength="7"/>
如何调整功能,使其仅选取名为site1
,site2
,site3
等的功能,而不是site1PC
,site2PC
,site3PC
等?
谢谢, 本。
答案 0 :(得分:1)
你的意思是这样的吗?
希望这有帮助。
function site_change() {{
var sites= document.getElementById('sitesinput').value;
var sum= 0;
var inputs= document.getElementById('inputsite').getElementsByTagName('input');
for (var i= inputs.length; i-->0;) {
if(input.hasClass('ignore')){return;} // looking for this(give your input class='ignore' to be excluded.
var v= inputs[i].value.split(',').join('.').split(' ').join('');
if (isNaN(+v))
alert(inputs[i].value+' is not a readable number');
else
sum+= +v;
}
var phones= document.getElementById('phonesinput').value;
document.getElementById('siteresult').innerHTML = phones-sum;
};
}
答案 1 :(得分:1)
添加if (inputs[i].getAttribute('name').match(/^site\d+$/))
function site_change() {
var sites= document.getElementById('sitesinput').value;
var sum= 0;
var inputs= document.getElementById('inputsite').getElementsByTagName('input');
for (var i= inputs.length; i-->0;) {
if (inputs[i].getAttribute('name').match(/^site\d+$/))
{
var v= inputs[i].value.split(',').join('.').split(' ').join('');
if (isNaN(+v))
alert(inputs[i].value+' is not a readable number');
else
sum+= +v;
}
}
var phones= document.getElementById('phonesinput').value;
document.getElementById('siteresult').innerHTML = phones-sum;
};
}