带有多个if语句的javascript表单验证

javascript form validation with multiple if statements

本文关键字:javascript 表单 验证 语句 if      更新时间:2023-09-26

这个表单验证函数正确吗?还是可以做得更好
例如:在检查联系人详细信息字段(dp1或dp2)之前,我希望两个下拉列表中的一个有一个值,但即使使用(||),验证也充当&。

$('#send').click(function(){
if( document.downloadForm.SoftwareDp.value == "0" || document.downloadForm.ManualDp.value == "0" )
{
 alert( "Please Select a file for Download" );
 return false;  }
// First check if Dropdown 1 OR dropdown 2 have been selected ( ONE at least)

if( document.downloadForm.name.value == "" && document.downloadForm.email.value == "" )
{
 alert( "Please enter your details" );
 return false;  }
 // then check if name and email are typed in.
 else{ // run some ajax if above conditions are met } });

演示:http://jsbin.com/UGotAFIL/1/edit?html,js,输出感谢

您的条件运行良好。如果要检查两个下拉菜单都未选中,则应使用&&而不是||

如果你需要选择至少一个下拉意味着你可以使用

 $('#send').click(function(){
if(!( document.downloadForm.SoftwareDp.value != "0" || document.downloadForm.ManualDp.value != "0" ))
{
 alert( "Please Select a file for Download" );
 return false;  }
// First check if Dropdown 1 OR dropdown 2 have been selected ( ONE at least)

if( document.downloadForm.name.value === "" && document.downloadForm.email.value === "" )
{
 alert( "Please enter your details" );
 return false;  }
 // then check if name and email are typed in.
 else{ // run some ajax if above conditions are met 
 } });

请参阅此jsbin演示

如果我理解正确,您希望在没有下拉列表有值时显示错误,即两者都没有值。更改

if( document.downloadForm.SoftwareDp.value == "0" || document.downloadForm.ManualDp.value == "0" )

至任一

if( document.downloadForm.SoftwareDp.value == "0" && document.downloadForm.ManualDp.value == "0" ) // both have the default value 0

if(!( document.downloadForm.SoftwareDp.value != "0" || document.downloadForm.ManualDp.value != "0" )) // none of them has not the default value

除非您在两者中都选择了0以外的值,否则您的检查方式将始终发出警报。

你应该这样做:

if( document.downloadForm.SoftwareDp.value == "0" && document.downloadForm.ManualDp.value == "0" )

仅当为0同时选择这两个选项时,以上选项才会发出警报。如果其中一个具有其他值,则不会显示警报。