Magento表单验证,表单不提交有效字段

时间:2015-03-17 17:33:22

标签: javascript php forms magento

我已创建了一个自定义注册表单,该表单将包含在我的Magento模板的标题中,该模板会发布到扩展程序I' m。

我在表单上使用了Magento表单验证,但是当我点击提交时 - 表单什么也没做。我可以看到"验证 - 通过" class已应用于所有元素,但没有任何反应。

<form action="http://XXXXXXX/newslettersignup/" method="post" id="newsletter-validate-detail">
    <div class="formBox">
        <ul class="form-list">
            <li>
                <div class="field">
                    <label for="email" class="required">Email</label>
                    <div class="input-box">
                        <input  type="email" name="email" id="email" title="Email" value="" class="input-text required-entry validate-email" />
                    </div>
                </div>
            </li>
            <li id="title_item">
                <div class="field">
                    <label for="title" class="required">Title</label>
                    <div class="input-box">
                        <select id="title" name="title" title="Title">
                            <option value="Mrs">Mrs</option>
                            <option value="Miss">Miss</option>
                            <option value="Ms">Ms</option>
                            <option value="Mr">Mr</option>
                            <option value="Dr">Dr</option>
                            <option value="Lady">Lady</option>
                            <option value="Other">Other</option>
                        </select>
                    </div>
                </div>
            </li>
            <li id="other_title_item" style="display:none;">
                <div class="field">
                    <label for="other_title" >Other</label>
                    <div class="input-box">
                        <input name="other_title" id="other_title" title="Title" value="" class="input-text" type="text" />
                    </div>
                </div>
            </li>
            <li>
                <div class="field">
                    <label for="firstname" class="required">First Name</label>
                    <div class="input-box">
                        <input name="firstname" id="firstname" title="First Name" value="" class="input-text required-entry" type="text" />
                    </div>
                </div>
            </li>
            <li>
                <div class="field">
                    <label for="lastname" class="required">Surname</label>
                        <div class="input-box"><input name="lastname" id="lastname" title="Surname" value="" class="input-text required-entry" type="text" /></div>
                        <button type="submit" title="Sign up" class="button slidein-submit">
                            <span><span>Sign up</span></span>
                        </button>
                </div>
            </li>
        </ul>
    </div>
</form>

<script type="text/javascript">
    //<![CDATA[
        var newsletterSubscriberFormDetail = new VarienForm('newsletter-validate-detail');
    //]]>
</script>

2 个答案:

答案 0 :(得分:3)

问题是我在页面上有两个表单,其ID相同“newsletter-validate-detail”。

我通过在varien / js.js的第321行放置一个断点来发现这一点,这表明我的另一个输入未能在页面上进行验证。我意识到这个输入属于同一ID的另一种形式。

一旦我更改了表单上的表单ID,它提交就好了。

答案 1 :(得分:0)

我已检查过您的表单是否正在验证。它是正确的。你需要把这个表格放在phtml文件中,然后检查。如果没有工作那么你需要检查是否有任何jquery错误或你有与此冲突的代码。