クライアントから、「一部のフィールドには「このフィールドに入力してください」というメッセージを含むツールチップが表示されるようになった」という苦情が寄せられました。私は聞いたことを信じることができませんでした...しかし、クライアントは正しいです-最新のChrome=バージョンを使用すると、いくつかのフィールドは私のバリデーターと並んでこのメッセージとブラウザツールチップを表示します!
どうしたの?私は何が欠けていますか?
ありがとう。
編集:
ユーザーコントロールによって生成されるHTMLは次のとおりです。
<input name="tbMontante" type="text" maxlength="8" size="10" tbMontante" class="Montantetextfield"
FieldName="Montante"
Required="True"
AllowDecimalValues="True"
/>
編集:
私のDoctypeは次のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
ブラウザはHTML 5を使用して解析する必要がありますか?
HTML5 必須 属性を使用していますか?
これにより、Chrome 10はユーザーにフィールドへの入力を促すバルーンを表示します。
novalidate="novalidate"
オン <form>
鬼ごっこ。
<form novalidate="novalidate">
...
</form>
XHTMLでは、属性の最小化は禁止されており、novalidate属性は
<form novalidate="novalidate">
。
Web-kitブラウザーでそのHtml5ポップアップ/バルーンを停止するには、次のCSSを使用します
::-webkit-validation-bubble-message { display: none; }
私が述べたように あなたの他の質問で :
そもそも独自の非標準属性(最初はすべきではなかった)を発明し、今では新しい標準化された属性(または標準化の過程での属性)が衝突しているという問題。
properソリューションは、発明された属性を完全に削除し、クラス(class="Montantetextfield fieldname-Montante required allow-decimal-values"
)などの適切なものに置き換えるか、または保存することです。 JavaScript:
var validationData = {
"Montante": {fieldname: "Montante", required: true, allowDecimalValues: true}
}
適切なソリューションが実行可能でない場合は、名前を変更する必要があります。その場合、接頭辞data-
...を使用する必要があります。これは、HTML5によってそのような目的のために予約されており、何かと衝突する可能性は低いからです。しかし、それでも可能です。変えるのはもっと大変です。
ブラウザの検証をトリガーするコントロールに「formnovalidate」属性を追加する必要があります。例:
<input type="image" id="fblogin" formnovalidate src="/images/facebook_connect.png">
「必須」属性を持つ1つ以上のフィールドを含むhtmlフォームがある場合、Chrome(最後のバージョンでは)フォームを送信する前にこれらのフィールドを検証します。ユーザーにフォームを送信してもらうために表示されます(つまり、「このフィールドに入力してください」)。
フォームでこのブラウザの組み込み検証を回避するには、フォームタグで"novalidate"属性を使用できます。このフォームはブラウザによって検証されません:
<form id="form-id" novalidate>
<input id="input-id" type="text" required>
<input id="submit-button" type="submit">
</form>
Chrome(v.56は私が使用しているものですが、これは一般的に適用されます))title = ""(単一のスペース)を設定すると、自動タイトルテキストが上書きされ、何も上書きされません(ただし、空の文字列にしようとすると、設定されていないものとして扱われ、取得した自動ツールチップテキストが追加されます)。
Google Chrome拡張機能を作成中に発見したため、他のブラウザでこれをテストしていません。他のブラウザに移植したら、きっとそれが表示されるかどうかを確認します(必要な場合でも)それらでも機能します。
ちょっと、グローバルなfind-replaceを行って、Required = "をjRequired ="に変更しました。次に、jqueryコードでも変更します(jquery_helper.js-> Function ValidateControls)。これで検証は以前と同様に継続され、Chromeはそのままになります!:)