【问题标题】:Simple form validation over multiple divs多个 div 的简单表单验证
【发布时间】:2012-11-09 23:32:38
【问题描述】:

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

在第一个表单中,我想确保他们在继续之前输入了电子邮件地址。我已经通过以下方式进行了尝试:

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

目前,该代码确实会检查电子邮件地址并在未输入任何内容时停止,但当输入电子邮件时,表单不会继续。 ('#n.2' 是一个仅显示表单下一页的选项卡)。如果我删除 if 语句并只制作按钮代码:

&lt;button class="btn classic" onclick="document.getelementbyid('n.2').click()"&gt;next&lt;/button&gt;

然后表单会按原样进行,但显然不会在未输入电子邮件地址时停止。

我的 `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>

【问题讨论】:

  • 您可能想签出这个插件,它将大大简化流程。 elclanrs.github.com/jq-idealforms.
  • 这确实很有帮助。我可能最终会使用它,但为了我自己的教育,我仍然想知道我在上面的代码中做错了什么!
  • 检查我的回答希望对您有所帮助。

标签: javascript forms button if-statement


【解决方案1】:

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

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

确实有一些问题。您在if 声明中缺少(。那么您需要使用比较运算符,例如====== 运算符只是用于赋值。最后你可以看出这个='=' ' ' 看起来很乱,这意味着什么并不明显,而且不是有效的JavaScript。此外,如果 ('#basicdetails .email') 本来是一个 jQuery 选择器,那么您在括号前缺少 $

【讨论】:

  • 是的,确实有很多错误。我将用更新的代码修改上面的帖子,因为它仍然无法正常工作。
猜你喜欢
  • 2011-05-18
  • 2013-05-19
  • 2011-03-12
  • 2013-11-16
  • 2012-01-15
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多