47

我不明白为什么 HTML5 的新required属性似乎不起作用,我知道我的简单代码似乎没问题。我应该怎么做才能完成这项工作?

这是我的 HTML 代码:

<input type = "text" class = "txtPost" placeholder = "Post a question?" required>
<button class = "btnPost btnBlue">Post</button>

如果我错了,请纠正我,但是,如果我在浏览器中运行代码并单击文本框中没有任何值的按钮,它应该有一个工具提示显示该字段是必需的,不是吗?但是,无论您单击该按钮多少次,都不会发生任何事情。我对如何使用required属性有误解吗?

我在 google chrome 中运行我的代码Version 28.0.1500.72

4

11 回答 11

53

尝试将其放在表单标签中并关闭输入标签:

<form>
  <input type = "text" class = "txtPost" placeholder = "Post a question?" required />
  <button class = "btnPost btnBlue">Post</button>
</form>
于 2013-07-31T09:23:21.400 回答
51

确保 novalidate 属性未设置为您的表单标签

于 2014-12-03T10:01:01.583 回答
11

表单中缺少提交字段元素也会导致此错误。在 JS 处理提交表单的“按钮”字段的情况下,没有提交按钮的必要性,因此必需的不起作用

于 2020-05-08T10:25:42.467 回答
5

只要在按钮上添加了type="submit"就可以了。

 <form action="">
    <input type="text" placeholder="name" required>
    <button type="submit">Submit</button>
</form>
于 2020-12-24T01:37:46.803 回答
3

实际上,当我尝试这样做时,它仅在我为表单设置动作和方法值时才有效。有趣的是它是如何工作的!

于 2017-12-24T04:52:49.223 回答
0

是的,你错过了表单封装:

JSFiddle

<form>
   <input id="tbQuestion" type="text" placeholder="Post a question?" required/>
   <input id="btnSubmit" type="submit" />
</form>
于 2013-07-31T09:31:35.557 回答
0

使用表单封装并添加您的按钮类型“提交”

于 2019-09-27T12:19:35.053 回答
0

我面临着同样的问题。在我的情况下,问题是输入标签中的 return 语句:

<input type="submit" onclick="function_call(); return false;">

删除return false;声明解决了我的问题。

于 2021-12-05T15:29:19.927 回答
0

晚了七年,但我也有类似的问题,我意识到这是由于提交表单刷新页面引起的。当我将其设置为在提交时不自动刷新时,我有足够的时间来查看浏览器实际上需要填充输入。

于 2021-06-09T00:55:44.857 回答
0

我的回答为时已晚,但它可以帮助别人。

即使我使用了表单标签,我也遇到了同样的问题。

我通过在页面标题中声明 Meta Charset 来解决它:

<meta charset = "UTF-8" />

于 2019-07-06T17:51:09.060 回答
0

我有同样的问题。我在提交按钮上执行了 onClick,这导致了问题。相反,尝试在表单中放置一个 onSubmit="anyAction" 并且应该可以。

皮埃尔

于 2022-03-03T17:24:58.217 回答