Javascript 检查多个值并显示错误

Javascript 检查多个值并显示错误,javascript,jquery,performance,Javascript,Jquery,Performance,我经常需要检查多个类似的字段,首先查看其中是否有问题,然后查看哪些字段包含无效数据。有没有比我这里的更好的方法 我对编程理论和javascript都感兴趣 if(($("#movie1").val() == "")||($("#movie2").val() == "")) { if($("#movie1").val() == "") { $("#movie1error").show(); } if($("#movie2").val() == "") {

我经常需要检查多个类似的字段,首先查看其中是否有问题,然后查看哪些字段包含无效数据。有没有比我这里的更好的方法

我对编程理论和javascript都感兴趣

if(($("#movie1").val() == "")||($("#movie2").val() == "")) {
    if($("#movie1").val() == "") {
        $("#movie1error").show();
    }

    if($("#movie2").val() == "") {
        $("#movie2error").show();
    }
}
else {
    //success
}
if(($("#movie1").val() == "")||($("#movie2").val() == "")) {
    if($("#movie1").val() == "") {
        $("#movie1error").show();
    }

    if($("#movie2").val() == "") {
        $("#movie2error").show();
    }
}
else {
    //success
}

您需要使用
|
而不是
&&
。您还需要使用
val()
而不是
value()


您需要使用
|
而不是
&&
。您还需要使用
val()
而不是
value()


jquery在对象上没有方法
value()
,将其更改为
val()
。我认为您的算法是正确的,并使用
运算符的intead来连接条件


jquery在对象上没有方法
value()
,将其更改为
val()
。我认为您的算法是正确的,并使用
运算符的intead来连接条件


我总是这样用:

function fieldsOk(){
switch(true){
    case ($("#txt1").val() == ""):
        return false;
    case ($("#pass1").val() != $("#pass2")):
        return false;
}
return true;
}

if(fieldsOk()){
 // code here
}else{
// show error
}

我总是这样用:

function fieldsOk(){
switch(true){
    case ($("#txt1").val() == ""):
        return false;
    case ($("#pass1").val() != $("#pass2")):
        return false;
}
return true;
}

if(fieldsOk()){
 // code here
}else{
// show error
}

首先,空字符串的处理方式与if语句中的
false
相同。您也可以简单地放置一个NOT
,而不是针对空字符串进行测试在它前面

此外,如果两者都是错误,则不需要周围的测试,如果其中一个是错误,则还需要进行测试。因此,如果要显示具有空字符串作为值的电影的错误,可以执行以下操作:

if (!$('#movie1').val()) $('movie1error').show();
else if (!$('#movie2').val()) $('movie2error').show();
else {
    //success
}
注意:我没有在代码周围放置
{}
来显示错误,因为当您获得空字符串时,这只是一件事,所以在本例中不需要这些。如果您想在得到一个空字符串时开始做更多的工作,那么应该在代码中添加这些内容

如果要仅在两部电影都是空字符串时显示这两个错误,可以将其更改为:

if (!$('#movie1').val() && !$('#movie2').val()) {
    $('movie1error').show();
    $('movie2error').show();
} else {
    //success
}

首先,空字符串的处理方式与if语句中的
false
相同。您也可以简单地放置一个NOT
,而不是针对空字符串进行测试在它前面

此外,如果两者都是错误,则不需要周围的测试,如果其中一个是错误,则还需要进行测试。因此,如果要显示具有空字符串作为值的电影的错误,可以执行以下操作:

if (!$('#movie1').val()) $('movie1error').show();
else if (!$('#movie2').val()) $('movie2error').show();
else {
    //success
}
注意:我没有在代码周围放置
{}
来显示错误,因为当您获得空字符串时,这只是一件事,所以在本例中不需要这些。如果您想在得到一个空字符串时开始做更多的工作,那么应该在代码中添加这些内容

如果要仅在两部电影都是空字符串时显示这两个错误,可以将其更改为:

if (!$('#movie1').val() && !$('#movie2').val()) {
    $('movie1error').show();
    $('movie2error').show();
} else {
    //success
}

如果任务相似,则可以使用
选择器,而不是使用ID检查。向要检查的字段添加公共类。说类名是
myCheck
然后使用jQuery可以执行以下操作

$('.myCheck').each(function(index,value){
    if(!$(this).val()){
        $('#'+$(this).attr('id')+'error').show();
    }
});
还可以为error元素指定一个公共类


演示

如果任务类似,则可以使用
选择器,而不是使用ID进行检查。向要检查的字段添加公共类。说类名是
myCheck
然后使用jQuery可以执行以下操作

$('.myCheck').each(function(index,value){
    if(!$(this).val()){
        $('#'+$(this).attr('id')+'error').show();
    }
});
还可以为error元素指定一个公共类


演示

“显示错误”?那又怎样?“显示错误”?那又怎样?@Satpal哦,是的,我刚刚从问题中复制了代码。修正了。你发布的第一个代码块只会显示一个错误;只有当两者都错了时,第二种情况才会出现。我想告诉用户是否有一个或两个错误。@Satpal哦,是的,我刚刚从问题中复制了代码。修正了。你发布的第一个代码块只会显示一个错误;只有当两者都错了时,第二种情况才会出现。我想告诉用户一个或两个是否包含错误。