Javascript 如何使用循环更改具有多个输入的边框样式?
如何使用JavaScript使用Javascript 如何使用循环更改具有多个输入的边框样式?,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,如何使用JavaScript使用for循环更改具有多个输入的边框样式 当我将1填入每个输入type=“text”中,然后按提交按钮 它只改变边框样式 <input type="text" id="price1" size="20" name="price[]"> 这方面的一些问题: 不能在多个元素上使用相同的id 标签上的for属性必须引用与其相关的表单字段,而不是div 在包含与其相关的输入的标签上,您不需要或不需要for属性 这:document.getElementById(
for
循环更改具有多个输入的边框样式
当我将1
填入每个输入type=“text”
中,然后按提交按钮
它只改变边框样式
<input type="text" id="price1" size="20" name="price[]">
这方面的一些问题:
id
标签上的for
属性必须引用与其相关的表单字段,而不是div
输入的标签上,您不需要或不需要for
属性
document.getElementById(“price”+z).value
进行字符串比较。如果要比较数字,请删除1.5和的JavaScript算法中的引号。首先,您的for
循环可能只需要转到三个
for(var z=1;z<3;z++)
此外,您不需要定义变量z
两次
var z = 1; // This can go.
for(var z = 1; z < 3; z++)
var z=1;//这个可以走了。
对于(var z=1;z<3;z++)
其他一些小的重新分解会产生这种情况,这应该会起到作用
function checkform (form)
{
var isValidForm = true;
for(var z = 1; z <= 3; z++)
{
var inputValue = parseFloat(document.getElementById("price" + z).value);
if (!isNaN(inputValue) && inputValue < 1.5) {
document.getElementById("price" + z).style.border = "1px solid red";
isValidForm = false;
}
else {
document.getElementById("price" + z).style.border = "1px solid #d5d5c5";
}
}
return isValidForm;
}
函数检查表单(表单)
{
var isValidForm=true;
对于(var z=1;z@robertwisyert:我没有注意到您有几个额外的花括号。已修复。但是如果您使用jQuery(我看到您包括了它,但没有使用它),您可能想看看各种jQuery示例以进行表单验证。您的代码是最好的,但我也想在ie7上使用,ie7不支持querySelectorAll
。您能给我一些在ie7上工作的代码吗?@robertwisyert:阅读jQuery文档。它处理queryselectoral
等问题我可以使用文档吗?getElementsByClassName
?@robertwisyert:阅读jQuery文档。您的页面上包含了一个强大的工具。请使用它。
var z = 1; // This can go.
for(var z = 1; z < 3; z++)
function checkform (form)
{
var isValidForm = true;
for(var z = 1; z <= 3; z++)
{
var inputValue = parseFloat(document.getElementById("price" + z).value);
if (!isNaN(inputValue) && inputValue < 1.5) {
document.getElementById("price" + z).style.border = "1px solid red";
isValidForm = false;
}
else {
document.getElementById("price" + z).style.border = "1px solid #d5d5c5";
}
}
return isValidForm;
}
function checkForm(){
var isFormValid = true;
// Get all text inputs that have an ID starting with 'price' and loop through them
$('input[type=text][id^=price]').each(function(){
// Get the current loop item.
var currentItem = $(this);
// Convert it's value to a number.
var inputValue = parseFloat(currentItem.val());
// If it's invalid make it red.
if (!isNaN(inputValue) && inputValue < 1.5) {
currentItem.css('border', '1px solid red');
isValidForm = false;
}else{
// Otherwise, make it this colour.
currentItem.css('border', '1px solid #d5d5c5');
}
});
}