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(

如何使用JavaScript使用
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');
             } 
        });
    }