Chrome popup请填写此字段

我的客户与我联系,说用户投诉说,现在有些字段显示工具提示“请填写此字段”。 我简直不敢相信我听到的…但客户端是正确的 – 使用最新的Chrome版本,一些字段显示浏览器工具提示与这个消息,甚至与我的validation器并排!

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

谢谢。

编辑:

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

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

编辑:

我的文档types如下所示:

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

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

您是否使用HTML5 必填属性?

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

http://www.w3.org/TR/html5/forms.html#attr-fs-formnovalidate

您可以禁用表单中的validation。

<form>标签上放置novalidate="novalidate"

 <form novalidate="novalidate"> ... </form> 

在XHTML中,属性最小化是被禁止的,novalidate属性必须定义为<form novalidate="novalidate">

http://www.w3schools.com/tags/att_form_novalidate.asp

要停止Web浏览器浏览器中的Html5popup窗口/气球,请使用以下CSS

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

正如我在其他问题中提到的那样 :

与这个事实相关的问题是,你发明了你自己的非标准属性(你本来不应该做的),而现在新的标准化属性(或标准化过程中的属性)与它们相冲突。

正确的解决办法是彻底删除你发明的属性,并用合理的东西代替它们,例如类( class="Montantetextfield fieldname-Montante required allow-decimal-values" ),或者将它们存储在JavaScript中:

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

如果正确的解决scheme是不可行的,你将不得不重新命名。 在这种情况下,您应该使用前缀data- …,因为HTML5保留了这个前缀,所以它不太可能与某些东西发生冲突,但是仍然可以,所以您应该认真考虑第一个解决scheme – 即使它更多努力改变。

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

 <input type="image" id="fblogin" formnovalidate src="http://img.dovov.comfacebook_connect.png"> 

如果您的html表单包含一个或多个带有“required”属性的字段,那么Chrome(在最新版本中)会在提交表单之前validation这些字段,如果未填写,则会向用户显示一些工具提示以帮助他们得到提交的表格(即“请填写此字段”)。

为了避免这种浏览器内置的表单validation,你可以在表单标签上使用“novalidate”属性。 这个表单不会被浏览器validation:

 <form id="form-id" novalidate> <input id="input-id" type="text" required> <input id="submit-button" type="submit"> </form> 

嘿,我们只是做了一个全局的查找replace,将Required =“更改为jRequired =” 。 然后,你只需在jQuery代码中更改它(jquery_helper.js – > Function ValidateControls)。 现在我们的validation和以前一样继续,Chrome离开了我们! 🙂

在Chrome(v.56是我使用的,但我AFAIK这一般适用),你可以设置标题=“”(一个空格)和自动标题文本将被覆盖,什么都不显示。 (如果你试图使它只是一个空string,它会把它当作没有设置,并添加自动获得的工具提示文本)。

我没有在其他浏览器中testing过这个function,因为我在制作Google Chrome扩展程序时发现了这个function。 但是,我确信一旦我将其他浏览器移植到其他浏览器上,我将会看到它是否在其中(如果有必要的话)。