我有一个简单的数学验证码,似乎可以工作,但它现在不允许我提交表单。
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/