这个表格验证功能是否正确?还是可以做得更好?
例如:在检查联系人详细信息字段(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 } });
答案 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时,上面才会发出警报。如果其中一个有其他值,它将不会显示警告。