对多个div进行简单的表单验证

时间:2012-11-09 23:32:38

标签: javascript forms button if-statement

我有一个包含3个步骤的联系表单,每个步骤都有自己的“标签”,然后通过电子邮件php脚本提交。实时版本为http://agoodman.com.au/wptest/menswear-porter-service/(点击“预订60秒”)。

在第一种形式中,我想确保他们在继续之前输入了电子邮件地址。我通过以下方式尝试了这个:

<button class="btn classic" onclick=" if ('#basicdetails .email').value ='=' ' '){return false;} else {document.getelementbyid('n.2').click();}">next</button>

目前,代码确实检查了电子邮件地址,如果没有输入任何内容则暂停,但是当输入电子邮件时,表单不会进展。 ('#n.2'是一个只显示表单下一页的选项卡)。如果我删除if语句并只创建按钮代码:

<button class="btn classic" onclick="document.getelementbyid('n.2').click()">next</button>

然后表单应该按预期进行,但是当没有输入电子邮件地址时显然不会停止。

我的`if / else'语法错了吗?否则,我在这里失踪了什么?

修改

在语法方面犯了一些大错误(首先尝试使用这种方法),请参阅更新的代码:

<button class="btn classic" id="firstTab">next</button>

<script>
$('.btn#firstTab').click(function(){
if (('#basicdetails .email').value =='') {
  return false;
} else {
 $('#n2').click();
}
});

</script>

1 个答案:

答案 0 :(得分:3)

使用内联JavaScript绝不是一个好主意。如果您将标记与逻辑分开,您将能够更好地组织标记并轻松发现错误。如果你打破代码并正确缩进代码,你会马上看到问题:

if ('#basicdetails .email').value ='=' ' ') {
  return false;
} else {
  document.getelementbyid('n.2').click();
}

确实存在一些问题。您在(声明中遗漏了if。然后您需要使用比较运算符,例如======运算符仅 用于分配。最后你可以看出这='=' ' '看起来像一团糟,这根本不是什么意思,加上不是有效的JavaScript。此外,如果('#basicdetails .email')是jQuery选择器,则在括号之前缺少$