jQuery提交函数不调用HTML5验证。

10

我有一个简单的HTML5表单,没有<input type="submit">,因为提交表单的按钮在表单外面。表单中有几个输入框设置了required="required"属性。

我将要提交表单的位于表单外部的按钮附带了以下代码:

$('#upgrade_submit').click(function(){
    $('#cc-form-modal').submit();
    return false;
});
当点击按钮时,它不会在必填字段上运行正常的HTML5验证。我做错了什么?是否有一种方法可以在“强制”提交之前检查表单是否有效?

相关内容可能为:https://dev59.com/qmct5IYBdhLWcg3wufxb - Sergio
1
@Sergio 这非常相关。我唯一会对已接受答案进行改进的方法是,如果我能想出一个不需要 HTML5 的解决方案。 - Icode4food
1个回答

14

我通过添加一个隐藏的提交表单元素来完成我的目标,就像这样:

<input type="submit" class="submit" style="display:none;">

我随后将以下代码附加到我的外部提交处理程序。

$('#upgrade_submit').click(function(){
    $('#cc-form-modal .submit').click();
    return false;
});

这将导致 HTML5 验证运行,显示默认错误消息并且一切正常!


2
纯jQuery混乱。自2013年以来没有其他方法? - cadavre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接