javascript中的验证在多if-else语句中不起作用?

javascript中的验证在多if-else语句中不起作用?,javascript,Javascript,下面是我的javascript代码-只要单击代理单选按钮,它就会进入第一个验证部分,而不会检查其他部分: function validate(form1) { var agent1=document.getElementById('agent'); var confirm=document.getElementById('confirm'); var holding=document.getElementById('holding');

下面是我的javascript代码-只要单击代理单选按钮,它就会进入第一个验证部分,而不会检查其他部分:

function validate(form1) 
    {
        var agent1=document.getElementById('agent');
        var confirm=document.getElementById('confirm');
        var holding=document.getElementById('holding');
        var confirm=form1.confirm.value;
        var book_by=form1.bookby.value;
        var bkother=form1.bookbyother.value;
        var agntphn=form1.phone1.value;
        var gstnam=form1.guest_name.value;
        var gstphn=form1.guest_no.value;
        var adlts=form1.no_adults.value;
        var children=form1.no_child.value;
        var infants=form1.no_infants.value;
        var check_in=form1.checkin.value;
        var check_out=form1.checkout.value;
        var nfd1=form1.no_of_days.value;
        var rc=form1.roomtype.value;
        var rpd=form1.rp_day.value;
        var rpb=form1.extrarate.value;
        var tamt=form1.totalamount.value;
        var advamt=form1.advance_amount.value;

        if ((agent1.checked == true))
        {
            if(!(book_by || bkother))
            {
                alert('Choose the valid agent')
            }
            else if(agntphn =="")
            {
                alert('Enter the agent phone number')
            }
        }
        else if (gstnam=="") {
            alert("Enter a valid Name ");
            document.getElementById('guest_name').focus();
            return false;
            //errors[errors.length] = "Enter valid Name ";
        }
        else if (!ck_Mobileno.test(gstphn)) {
            alert("Enter a valid Mobile Number with 10 digits");
            document.getElementById('guest_no').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if ((adlts=="") &&( children=="" )&&( infants=="")) {
            alert("Enter a valid No of persons");
            document.getElementById('no_adults').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(check_in)) {
            alert("Enter a valid Checkin Date");
            document.getElementById('checkin').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(check_out)) {
            alert("Enter a valid  check_out date");
            document.getElementById('checkout').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(nfd1)) {
            alert("Click to the box to get the no of days");
            document.getElementById('no_of_days').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(rc)) {
            alert("Select the room type");
            document.getElementById('roomtype').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(rpd)) {
            alert("Enter the Rate Per Day");
            document.getElementById('rp_day').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(rpb)) {
            alert("Enter the Rate Per Bed");
            document.getElementById('extrarate').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(tamt)) {
            alert("Click on the box to get the total amount");
            document.getElementById('totalamount').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }
        else if (!(advamt)) {
            alert("Enter the advance amount");
            document.getElementById('advance_amount').focus();
            return false;
            //errors[errors.length] = "Enter valid mobileno ";
        }

    }

</script>
函数验证(form1)
{
var agent1=document.getElementById('agent');
var confirm=document.getElementById('confirm');
var holding=document.getElementById('holding');
var confirm=form1.confirm.value;
var账面价值=form1.bookby.value;
var bkother=form1.bookbyother.value;
var agntpn=form1.phone1.value;
var gstnam=form1.guest\u name.value;
var gstphn=form1.guest_no.value;
var adlts=表1.no_.value;
var children=form1.no_child.value;
var婴儿=form1.no_婴儿值;
var check_in=form1.checkin.value;
var checkout=form1.checkout.value;
var nfd1=表1.no of_days.value;
var rc=form1.roomtype.value;
var rpd=form1.rp_day.value;
var rpb=form1.extrate.value;
var tamt=form1.totalamount.value;
var advant=form1.advant\u amount.value;
如果((agent1.checked==true))
{
如果(!(其他人预订)
{
警报('选择有效的代理')
}
else if(agntpn==“”)
{
警报('输入代理电话号码')
}
}
else if(gstnam==“”){
警报(“输入有效名称”);
document.getElementById('guest_name').focus();
返回false;
//错误[errors.length]=“输入有效名称”;
}
否则,如果(!ck_Mobileno.test(gstphn)){
警报(“输入一个10位数的有效手机号码”);
document.getElementById('guest_no').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
如果((adlts==“”)和&(儿童==“”)和&(婴儿==“”),则为else{
警报(“输入有效的人数”);
document.getElementById('no_成人').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则如果(!(签入)){
警报(“输入有效的签入日期”);
document.getElementById('checkin').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则如果(!(签出)){
警报(“输入有效的签出日期”);
document.getElementById('checkout').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(nfd1)){
警报(“单击框获取天数”);
document.getElementById('no_of_days').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(rc)){
警报(“选择房间类型”);
document.getElementById('roomtype').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(rpd)){
警报(“输入每天的费率”);
document.getElementById('rp_day').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(rpb)){
警报(“输入每床的费率”);
document.getElementById('extrate').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(tamt)){
警报(“点击框获取总金额”);
document.getElementById('totalamount').focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
否则,如果(!(advant)){
警报(“输入预付款金额”);
document.getElementById(“预付款金额”).focus();
返回false;
//错误[errors.length]=“输入有效的mobileno”;
}
}

单击确认单选按钮后,将显示所有禁用元素…

您使用的是
if(condition){}else if(condition){}
。匹配的第一个条件是将要执行的所有条件

如果希望执行所有测试,请删除
else

    if ((agent1.checked == true))
    {
        if(!(book_by || bkother))
        {
            alert('Choose the valid agent');
            return false;
        }
        else if(agntphn =="")
        {
            alert('Enter the agent phone number')
            return false;
        }
    }

    // == > don't use else if here, just a plain if
    if (gstnam=="") {
        alert("Enter a valid Name ");
        document.getElementById('guest_name').focus();
        return false;
    }

    // ... continuing on for the rest of your if statements

如果基于数据,您只希望执行部分测试,则必须将代码分成块,并使用右侧的
If
测试来确定针对哪些条件执行哪些代码。但是,按照您的方式,它只会执行与其他条件匹配的第一个条件,而不执行任何其他条件。

假设您的表单正在执行

<form onsubmit="return validate(this)"

因为您使用的是IF-ELSE,所以如果一个条件为真,它将不会检查其他人仅在所有情况下使用它不需要接受所有表单数据,因为我有两个单选按钮……1.agent 2.direct……。如果单击了agent,表单将显示另外两个元素,默认情况下隐藏……我不知道在这种情况下是否可以对所有内容使用if语句…我有两个单选按钮,基于必须执行表单验证…如果选择了代理单选按钮,表单显示另外两个默认隐藏的元素…如果单击代理单选按钮,则不需要显示所有值…如果单击DIRECT单选按钮,则会检查除隐藏元素以外的所有值…@RanjithR-因此您必须将该逻辑编码到
if
语句中,以便只检查您应该根据页面状态检查的内容。您没有指定足够的详细信息,任何人都无法提供有关如何进行编码的任何编码详细信息。否如果不起作用,则控件只会转到第一条警报消息,即使输入了值,也会显示另一个错误。请检查控制台并发布jsfiddle.net。如果单击了direct单选按钮,则禁用所有