javascript中的验证在多个if else语句中不起作用
validation in javascript not working in multiple if else statement?
下面是我的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>
检查jfiddle
一旦确认单选按钮被点击,所有禁用元素显示…
假设您的表单正在运行
<form onsubmit="return validate(this)"
- 修复其他问题。大多数其他的都不需要,特别是代码中的第一个,如果检查代理,将停止其余的验证。我已经添加了一些代码来处理所选代理或键入代理的验证—当它变得那么大时,一个单独的函数会更好
- 将||改为&&
if(!(book_by && bkother)) {
- 重命名并更改表单 末尾的第二个bookby字段的ID
- 删除phone1中的空格或在测试 之前使用trim来删除空格
function validate(form1) {
var....
var....
var....
if(agent1.checked) {
if (book_by == "") {
alert('Choose a valid agent');
document.getElementById('bookby').focus();
return false;
} else {
if (bkother == "") {
alert('Type an agent name');
document.getElementById('bookbyother').focus();
return false;
}
if (agntphn == "") {
alert('Enter the agent phone number');
document.getElementById('phone1').focus();
return false;
}
}
}
if (gstnam == "") {
alert("Enter a valid Name ");
document.getElementById('guest_name').focus();
return false;
//errors[errors.length] = "Enter valid Name ";
}
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 ";
}
if ((adlts == "") && (children == "") && (infants == "")) {
alert("Enter a valid No of persons");
document.getElementById('no_adults').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(check_in)) {
alert("Enter a valid Checkin Date");
document.getElementById('checkin').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(check_out)) {
alert("Enter a valid check_out date");
document.getElementById('checkout').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
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 ";
}
if (!(rc)) {
alert("Select the room type");
document.getElementById('roomtype').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(rpd)) {
alert("Enter the Rate Per Day");
document.getElementById('rp_day').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(rpb)) {
alert("Enter the Rate Per Bed");
document.getElementById('extrarate').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(tamt)) {
alert("Click on the box to get the total amount");
document.getElementById('totalamount').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
if (!(advamt)) {
alert("Enter the advance amount");
document.getElementById('advance_amount').focus();
return false;
//errors[errors.length] = "Enter valid mobileno ";
}
return true; // allow submission
}
您正在使用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
测试来确定哪些代码在哪些条件下执行。但是,您所使用的方法将只执行第一个条件与匹配,而不执行其他条件。
相关文章:
- 如何在ReactJS JSX中执行嵌套的if-else语句
- Javascript Return and if/else
- JavaScript if-else 速记错误
- 如何检查if/else语句中的随机条件
- 在javascript中创建数组,而不是if.else
- Javascript If else 只返回 TRUE 或只返回 FALSE
- jquery if else不返回警报消息
- 在Javascript中为if/else语句添加OR
- If Else Java Script HTML
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- 我应该如何应用if-else条件来向具有不同用户角色的人显示不同的菜单
- geoTest函数-创建if/else语句
- JavaScript中的温度转换器(IF ELSE条件)
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- 编写if-else语句的更好方法
- 在if/else语句中显示DIV
- PHP If Else-隐藏按钮
- JavaScript if/else未按预期操作
- if/else运算符未更改
- 名称不能以''jquery-if-else条件中的字符