当前位置: 首页 > 知识库问答 >
问题:

输入类型不是“提交”时的HTML5验证

农飞星
2023-03-14

我使用HTML5验证字段。我提交的表单使用JavaScript点击按钮。但是HTML5验证不起作用。它只在输入类型为提交时才起作用。除了使用JavaScript验证或将类型更改为提交之外,我们还能做什么吗?

这是超文本标记语言代码:

<input type="text" id="example" name="example" value="" required>
<button type="button"  onclick="submitform()" id="save">Save</button>

我正在函数submitform()中提交表单。

共有3个答案

华永逸
2023-03-14

您应该使用表单标记来封装输入。和输入类型提交
这很有效。

<form id="testform">
<input type="text" id="example" name="example"  required>
<button type="submit"  onclick="submitform()" id="save">Save</button>
</form>

由于HTML5验证只适用于提交按钮,所以您必须将其保留在那里。通过编写表单的事件处理程序来防止默认操作,您可以避免表单提交(如果有效)。

document.getElementById('testform').onsubmit= function(e){
     e.preventDefault();
}

这将在无效时给予您验证,并且在有效时不会提交表单。

夹谷山
2023-03-14

我可能会迟到,但我的做法是创建一个隐藏的提交输入,并在提交时调用它的单击处理程序。类似于(为了简单起见使用jquery):

<input type="text" id="example" name="example" value="" required>
<button type="button"  onclick="submitform()" id="save">Save</button>
<input id="submit_handle" type="submit" style="display: none">

<script>
function submitform() {
    $('#submit_handle').click();
}
</script>
白弘伟
2023-03-14

HTML5表单验证过程仅限于通过提交按钮提交表单的情况。表单提交算法明确表示,当通过提交()方法提交表单时,不执行验证。显然,这个想法是,如果你通过JavaScript提交表单,你应该进行验证。

但是,您可以使用checkValidity()方法根据HTML5属性定义的约束请求(静态)表单验证。如果您希望显示与浏览器在HTML5表单验证中相同的错误消息,恐怕您需要检查所有受约束的字段,因为validityMessage属性是字段(控件)的属性,而不是表单的属性。在单个受约束字段的情况下(如所示),这当然是微不足道的:

function submitform() {
  var f = document.getElementsByTagName('form')[0];
  if(f.checkValidity()) {
    f.submit();
  } else {
    alert(document.getElementById('example').validationMessage);
  }
}
 类似资料:
  • 似乎没有类输入类型'提交'在Font-真棒。是不是可以使用一些类从字体真棒按钮输入?我已经在我的应用程序中的所有按钮上添加了图标(实际上链接到twitter-bootstrap的类btn),但是不能在输入类型提交上添加图标。 或者,如何使用此代码: html: (这是我从HTML中获得的:如何制作一个包含文本图像的提交按钮?)?

  • 嗨,我想用提交按钮验证输入类型=电子邮件字段。我在页面中有两个表单元素。我正在打开一个div(divForgotPassword)作为模式。但是必需的属性在模态内部不起作用。下面是我的代码 //一些元素

  • 问题内容: 根据html5.org的说法,“数字”输入类型的“值属性,如果指定且不为空,则必须具有一个有效浮点数的值”。 但这只是简单的(无论如何,在最新版本的Chrome中),是一个带有整数而不是浮点数的“上下”控件: 是否存在HTML5固有的浮点输入元素,或一种使数字输入类型适用于浮点而不是整数的方法?还是我必须使用jQuery UI插件? 问题答案: 该类型具有一个值,该值控制哪些数字有效(

  • 问题内容: 我正在使用此代码尝试通过表单提交值,但似乎未提交任何内容… 我通常会使用复选框或单选按钮来显示多个选项,但是我想使用图像来执行此操作。 此代码是否错误? 所以我想在value =“ myValue”中传递值。 表单工作正常,所以这不是问题,我只需要输入部分不提交的帮助,因为我知道这是可行的。 谢谢 输入type =“ image”仅将该图像定义为提交按钮,而不定义为可以将值传递给服务器

  • 但单击登录按钮不起作用。 下面是链接http://accountsdemo.herokuapp.com/users/sign_in 已尝试通过signinLocator=By.name(“commit”);和signinLocator=By.xpath(“//input[@type='submit']”); 下面是相同的Java代码 我不知道我是不是做错了什么

  • 根据HTML5.org,“number”输入类型的“value属性(如果指定且不为空)必须有一个有效的浮点数。” 然而,它只是一个包含整数的“向上向下”控件(反正是Chrome的最新版本),而不是浮点: null null 是否有一个HTML5本机的浮点输入元素,或者一种使数字输入类型与浮点而不是int一起工作的方法?还是必须求助于jQuery UI插件?