我有一个包含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>
答案 0 :(得分:3)
使用内联JavaScript绝不是一个好主意。如果您将标记与逻辑分开,您将能够更好地组织标记并轻松发现错误。如果你打破代码并正确缩进代码,你会马上看到问题:
if ('#basicdetails .email').value ='=' ' ') {
return false;
} else {
document.getelementbyid('n.2').click();
}
确实存在一些问题。您在(
声明中遗漏了if
。然后您需要使用比较运算符,例如==
或===
。 =
运算符仅 用于分配。最后你可以看出这='=' ' '
看起来像一团糟,这根本不是什么意思,加上不是有效的JavaScript。此外,如果('#basicdetails .email')
是jQuery选择器,则在括号之前缺少$
。