Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过onsubmit属性提交表单时HTML5模式验证不起作用_Javascript_Jquery_Html_Forms_Html5 Validation - Fatal编程技术网

Javascript 通过onsubmit属性提交表单时HTML5模式验证不起作用

Javascript 通过onsubmit属性提交表单时HTML5模式验证不起作用,javascript,jquery,html,forms,html5-validation,Javascript,Jquery,Html,Forms,Html5 Validation,我正在尝试通过onsubmit属性提交表单。但是我希望HTML5验证也能起作用 函数submitForm(){ 如果(某些条件){ //使用此提交表格没有它我无法提交表格 $(“表格”).submit(); 返回true; } 否则{ 返回false; } } 输入的模式属性是一个regexp,您可以手动提取它 const patternToMatch = $("input[type="text"]).attr("pattern"); 然后将其实例化为: const regexp = new

我正在尝试通过onsubmit属性提交表单。但是我希望
HTML5
验证也能起作用

函数submitForm(){
如果(某些条件){
//使用此提交表格没有它我无法提交表格
$(“表格”).submit();
返回true;
}
否则{
返回false;
}
}

输入的模式属性是一个regexp,您可以手动提取它

const patternToMatch = $("input[type="text"]).attr("pattern");
然后将其实例化为:

const regexp = new RegExp(patternToMatch);
最终确保在提交前输入内容得到尊重

function submitForm() {
     if ($("input[type="text"]).val().match(regexp)) {
            form.submit();
     } else {
            // display message
     }
}

这是盲编码,如果不起作用请告诉我:)

当使用JQuery提交时,它不会查看HTML的验证,只会绕过它。然而,有一种方法可以做到这一点,正如我在下面展示的。所以我在这里做的是。首先,为了保持简单,而不是在加载页面时触发Submit,我使用submitForm()函数创建了一个链接。我还创建了一个不可见的提交按钮。然后在submitForm()函数中,您可以找到隐藏的按钮并触发一个单击事件,该事件将从按钮触发提交并验证HTML

通过这种方式,您可以使用JQuery启动submit,并编写JQuery中需要的任何其他代码

编辑:将代码段更改为在验证时仍使用submit()JQuery函数

函数submitForm(){
//做点什么
if($('#form')[0].checkValidity(){
$('表格').submit();
}
}

如果输入与模式不匹配,则以下代码不应调用“提交”

<form action="search" method="post" id="form">
  <input type="text" pattern="[A-Za-z]" required title="1 letter only">
</form>
在这里演奏小提琴:

对于模式:

  • [a-zA-Z]
    匹配a–Z中的一个字母的大小写
  • [a-zA-Z]+
    匹配一个或多个字母(一个单词)

在您的情况下,它将只匹配1个字母

不要调用
onsubmit上的
submitForm()
=使其成为
onsubmit=“submitForm”
,因此它只在您提交表单时调用函数,而不是在初始加载时。嘿,我编辑了一点帖子@IamLI为你创作了这把小提琴:这应该work@yashjain12yj我编辑了我的答案,现在它在验证HTML时仍然使用submit()函数。
var form = $("#form");

form.on("submit", function(e){
e.preventDefault();
   alert('Submitted')
});