1

我想做的是同时更改所有输入文本边框的颜色,如果它/它们在单击按钮时具有空值或没有值,我有一个功能可以做到这一点。首先,我将要检查值的输入文本放入数组中,然后调用函数在其中循环遍历数组并检查空值。单击按钮时,如果我的所有输入文本均为空,则只会更改数组中第一个索引的颜色。

这是我的功能:

function isValid(array){
            for(var x=0;x<array.length;x++){
                if (array[x].value.trim() == ""){
                    $(array[x]).css("border-color","#FF0000");
                    return false;
                }
            }
        }

这就是我调用函数的方式:

var array = [document.getElementById('txtLastName'),
            document.getElementById('txtFirstName')
            ];
if (!isValid1(array)) {
return false;
    }

如何使用空值更改数组中所有输入的边框颜色?谢谢!

4

3 回答 3

2

这是我的两分钱,可能需要调整:

function isValid(selector){
    return ($(selector).filter(function() {
        return (this.value.trim() === "");
    }).css("border-color","#FF0000").length === 0);
}

要使用它:

isValid("#txtLastName, #txtFirstName");

我在调用者中构建 CSS 选择器并将其传递给isValid(),您可以传递数组["txtFirstName", "txtFirstName"]并在中构建选择器isValid()

有很多方法可以做到这一点,更模块化的方法是使用nullValidate类作为选择器,因此您可以拥有任意数量的验证字段。

编辑:如果找到无效元素则返回

于 2013-08-05T05:07:17.100 回答
0

只值我的 2 美分

<form name="form">
<input type="text" name="firstname" />
<input type="button" name="submit_btn" value="send" />
</form>


$(document).ready(function(){

$('input[type="text"]').keyup(function(){
    var length = $('input[type="text"]').val().length;
    if(length===0){
        $(this).css({"border":"1px solid red"});
    }
    else {
        $(this).css({"border": ""});
    }
});

$('input[type="button"]').click(function(){
   var length = $('input[type="text"]').val().length;
    if(length===0){
        $('input[type="text"]').css({"border":"1px solid red"});
    } else {
        $('input[type="text"]').css({"border":""});
    }
});

});

于 2013-08-05T06:48:49.530 回答
0

为什么混合使用 jQuery 和 vanilla JS .. 可以只使用filter方法。

$('#txtLastName, #txtFirstName').filter(function() {
    return $.trim(this.value) === '';
}).css("border-color","#FF0000");

您编写代码的方式也没有任何问题。

您很可能没有使用正确的 id。

你的代码

jQuery 代码

于 2013-08-05T05:00:32.377 回答