编辑 051012:事实证明,问题与表单在一个页面上的关系不大,而与原型和 jQuery 之间的冲突有关;在页脚底部包含 jQuery,但未设置为无冲突。我只是在包含那个特定的 jQuery 之后添加了这个:
<script type="text/javascript">
//<![CDATA[
$.noConflict();
//]]>
</script>
我在下面接受 Pavel Novitsky 的回答,因为他提到,“如果假设您没有表单嵌入或 JavaScript 错误,那么您的代码应该可以工作......”这让我意识到它可能与 Javascript 有关。
我目前正在使用 Magento 构建一个电子商务网站,该网站要求注册和登录表单都位于一个页面上。
我已在一个页面上成功集成了这两个表单,但无法登录或注册。
以下是表单结构的简要概述
<!--registration-->
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
<!--// form input fields go here-->
</form>
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('form-validate', true);
//]]>
</script>
<!--login-->
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
<!--// form input fields go here-->
</form>
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('form-validate', true);
//]]>
</script>
我注意到该变量dataForm
被定义了两次,所以我将其中一个切换dataForm02
为查看提交是否会通过 - 也没有。因此,经过将近 6 个小时的催促,我决定删除 javascript 验证,令我惊讶的是,两种表单上的提交都有效。
有谁知道为什么会这样?很高兴我通过这两种形式提交了意见,但这绝对不是理想的,因为这两种形式都没有采用任何形式的验证。我差点把我的电脑扔出我 20 层的公寓。