使用多个if语句进行javascript表单验证

时间:2013-12-13 09:56:44

标签: javascript validation if-statement

这个表格验证功能是否正确?还是可以做得更好?
例如:在检查联系人详细信息字段(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,output 感谢

3 个答案:

答案 0 :(得分:3)

你的病情完美。 如果您要检查两个下拉菜单都未选中,则应使用&&代替||

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

 $('#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 demo

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

你应该这样做:

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

只有当两者都被选为0时,上面才会发出警报。如果其中一个有其他值,它将不会显示警告。