JavaScript多重测试

时间:2013-03-27 18:27:37

标签: javascript html

我有一个HTMl Web表单,包含12组11个输入组合框。

每组中第一个组合框中的第一个/默认选项为“NO”。

用户可以选择“是”。

我想在每个组中的第一个组合框上运行初始测试,如果返回值为YES(true),那么我想在剩余的10个输入框上运行进一步测试,如果测试为false(默认值)值“NO”然后跳过该组并测试下一组中的第一个框。

我失败了,我确定答案很简单,但我无法解决。

请有人帮我这个。

if (UserRoomSelection_Room_01 == "YES") {

if (userFirstDayOfBooking_Room_01 == "0") {
alert("Please Select First Day Of Booking!");
    return false;
}
if (userFirstDateOfBooking_Room_01 == "0") {
alert("Please Select First Date Of Booking!");
    return false;
}
if (userFirstMonthOfBooking_Room_01 == "0") {
alert("Please Select First Month Of Booking!");
    return false;
}
if (userFirstYearOfBooking_Room_01 == "0") {
alert("Please Select First Year Of Booking!");
    return false;
}
if (userLastDayOfBooking_Room_01 == "0") {
alert("Please Select Last Day Of Booking!");
    return false;
}
if (userLastDateOfBooking_Room_01 == "0") {
alert("Please Select Last Date Of Booking!");
    return false;
}
if (userLastMonthOfBooking == "0") {
alert("Please Select Last Month Of Booking!");
    return false;
}
if (userLastYearOfBooking_Room_01 == "0") {
alert("Please Select Last Year Of Booking!");
    return false;
}       
if (userBoard_Room_01 == "0") {
alert("Please Select Boarding!");
    return false;
}
if (!userRate_Room_01) {
alert("Please Enter The Rate For This Booking!");
    return false;
       }
}

提前谢谢。

2 个答案:

答案 0 :(得分:0)

也许是这样的? 确保将其包装在函数中并使用return YourFunctionXXY();

调用该函数
var ErrorMessage;
var AllOk=true;
    if (UserRoomSelection_Room_01 == "YES") {

        if (userFirstDayOfBooking_Room_01 == "0") {
        ErrorMessage+="Please Select First Day Of Booking!\n";
           AllOk=false;
        }
        if (userFirstDateOfBooking_Room_01 == "0") {
        ErrorMessage+="Please Select First Date Of Booking!\n";
           AllOk=false;
        }
        ........
    }
   if(UserRoomSelection_Room_02 == "YES"){
        .................... 
   }




        if(ErrorMessage!=""){
         alert(ErrorMessage);
          return false;
        }else{
          return true;
        }

答案 1 :(得分:0)

返回false;在你的代码中断任何进一步的执行。您可以使用Iesus Sonesson提供的举报解决方案,但这不是最佳做法。

您已经描述过算法,应该使用循环来实现。例如,您可以将文本消息和组合存储在数组中,然后重复它。

for (var i in combos) {
    if(combos[i]['0'] == 'YES')
    {
        //iterate other combos
    } else {
        // go to next combo group
        break;     
    }
}