为什么Chrome会在空白字段中显示“请填写此字段”工具提示?

时间:2011-03-22 14:32:59

标签: html5 google-chrome popup

我的客户联系过我,说用户抱怨说某些字段现在显示工具提示,上面写着“请填写此字段”。我无法相信我听到的内容......但是客户端是对的 - 使用最新的Chrome版本,某些字段会显示一个浏览器工具提示,此消息甚至与我的验证器并排!

有什么问题?我错过了什么?

感谢。

编辑:

我的用户控件生成的HTML如下:

<input name="tbMontante" type="text" maxlength="8" size="10" tbMontante" class="Montantetextfield" 
    FieldName="Montante" 
    Required="True" 
    AllowDecimalValues="True" 
/>

编辑:

我的文档类型如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我的浏览器是否应该使用HTML 5来解析它?

8 个答案:

答案 0 :(得分:45)

您使用的是HTML5 required属性吗?

这将导致Chrome 10显示一个气球,提示用户填写该字段。

答案 1 :(得分:36)

答案 2 :(得分:13)

要在Web-kit浏览器中停止使用Html5弹出/气球,请使用以下CSS

::-webkit-validation-bubble-message { display: none; }

答案 3 :(得分:8)

正如我提到in your other question

与此相关的问题是,您发明了自己的非标准属性(首先不应该这样做),现在新的标准化属性(或标准化过程中的属性)是与他们相撞。

正确的解决方案是完全删除您发明的属性并将其替换为 一些明智的东西,例如类(class="Montantetextfield fieldname-Montante required allow-decimal-values"),或者将它们存储在JavaScript中:

var validationData = {
  "Montante": {fieldname: "Montante", required: true, allowDecimalValues: true}
}

如果正确的解决方案不可行,则必须重命名。在这种情况下,您应该使用前缀data- ...因为HTML5为此目的保留了它,并且它不太可能与某些内容发生冲突 - 但它仍然可以,所以您应该认真考虑第一个解决方案 - 甚至改变是更多的工作。

答案 4 :(得分:4)

您需要将属性“formnovalidate”添加到触发浏览器验证的控件中,例如:

<input type="image" id="fblogin" formnovalidate src="/images/facebook_connect.png">

答案 5 :(得分:4)

如果您的html表单包含一个或多个具有“必需”属性的字段,则Chrome(在最新版本上)将在提交表单之前验证这些字段,如果未填写,则会向用户显示一些工具提示帮助他们提交表格(即“请填写此字段”)。

要避免在表单中使用此浏览器内置验证,您可以在表单标记上使用“novalidate”属性。 浏览器不会验证此表单:

<form id="form-id" novalidate>

    <input id="input-id" type="text" required>

    <input id="submit-button" type="submit">

</form>

答案 6 :(得分:3)

在Chrome中(第56节是我正在使用但我通常适用的AFAIK)你可以设置title =&#34; &#34; (单个空格)并且将覆盖自动标题文本并且不显示任何内容。 (但是,如果你试图让它只是一个空字符串,它会将其视为没有设置并添加你已经获得的自动工具提示文本。)

我还没有在其他浏览器中对此进行测试,因为我在制作Google Chrome扩展程序时发现了它。我确定一旦把东西移到其他浏览器上,我就会看到它是否适用于它们(如果有必要的话)。

答案 7 :(得分:1)

嘿,我们刚刚进行了全局查找替换,将必需=“更改为 jRequired =”。然后你只需在jquery代码中更改它(jquery_helper.js - &gt; Function ValidateControls)。现在,我们的验证仍在继续,Chrome让我们独自一人! :)