javascript 验证码和表单未提交

标签 javascript forms validation captcha

我有一个简单的数学验证码,似乎可以工作,但它现在不允许我提交表单。

https://jsfiddle.net/qm24Lps8/2/

上面的 js fiddle 包含完整的代码 - 下面是表单的下半部分。验证码修改为消息框底部。还有运行验证码的 javascript。

我做错了什么导致表单无法提交?

  <div class="mxm-form-item " id="mxm-form-2446-field-3">
                        <div class="mxm-form-field">
                            <textarea rows="2" name="Default.message" id="mxm-form-2446-field-3-el" class="mxm-form-element mxm-form-textarea" onfocus="clearDefaultandCSS(this)">How can we help?</textarea>
                        </div>
                        <div class="mxm-clear"></div>
                    </div>
                    <div class="mxm-form-item " id="mxm-form-38124-field-3">
                        <div class="mxm-form-field">
                            <input type="hidden" name="Default.brochure request" value="no" />
                            <input id="mxm-form-38124-field-3-el" type="checkbox" name="Default.brochure request" value="yes" class="mxm-form-element mxm-form-booleancheckbox" />
                            <label for="mxm-form-38124-field-3-el" class="mxm-form-cb-label">Download our brochure</label>
                        </div>
                        <div class="mxm-clear"></div>
                    </div>
                    <div class="mxm-form-item " id="mxm-form-38124-field-4">
                        <div class="mxm-form-field">
                            <label style="width:120px;" class="mxm-form-item-label"></label>
                            <input type="submit" value="Submit" class="mxm-form-element mxm-form-button" onclick="return(validate());" />
                        </div>
                        <div class="mxm-clear"></div>
                    </div>
                </form>
            </div>
        </div>
        </div>
    </div>

$(function(){

var mathenticate = {
    bounds: {
        lower: 5,
        upper: 50
    },
    first: 0,
    second: 0,
    generate: function()
    {
        this.first = Math.floor(Math.random() * this.bounds.lower) + 1;
        this.second = Math.floor(Math.random() * this.bounds.upper) + 1;
    },
    show: function()
    {
        return this.first + ' + ' + this.second;
    },
    solve: function()
    {
        return this.first + this.second;
    }
};
mathenticate.generate();

var $auth = $('<input type="text" name="auth" />');
$auth
    .attr('placeholder', mathenticate.show())
    .insertAfter('textarea[name="Default.message"]');

$('#mxm-form-38124').on('submit', function(e){
    e.preventDefault();
    if( $auth.val() != mathenticate.solve() )
    {
        alert('wrong answer!');
    }
});

});

最佳答案

检查Validate()函数是否已定义。它在提交按钮事件上抛出错误。

关于javascript 验证码和表单未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31582715/

相关文章:

javascript - 从 JavaScript 表单访问搜索结果的 VBA 网络抓取工具

javascript - 如何打印与显示完全相同的 Bootstrap 模态?

laravel - 如何将所有\Illuminate\Http\Request $request 数据设置为 FormRequest 对象以在 LARAVEL 中的 Controller 中使用

php - 如何检查数字顺序是否正确?

javascript - 如何使用回车键将项目添加到输入中,并且仅在单击按钮时提交表单?

javascript - 使用 javascript 选择所有选项 A 单选按钮

javascript - 如何使用原生 HTML5 约束 API 验证单选组是否具有选择

mysql - 使用node.js将数据从html表单发送到mysql表

c# - Regular Expressions-VAlidation String-REAL菜鸟问题:)

html - 验证 JSP 和 HTML 表单,服务器端或客户端,或两者?