IE11とFirefoxの少なくともJavaScriptでは、Numberフィールドの値を設定するときに "novalidate"という形式を無視しているようです。番号フィールドを使用したいのは、私のサイトがモバイルデバイス上で表示されているときにキーボードの代わりに数字パッドを表示したいが、値が入力されたときに、それを(### )### - ####。次の例では、私があるため、「NOVALIDATE」オプションのフィールドに私が欲しいものは何でも入力できますが、JSは私が私が欲しいものを挿入させません。Javascriptは数字フィールドでnovalidateを無視しますか?
var txtNum = document.getElementById("txtNum");
function ftnTestA() {
\t var num = "1234567890";
\t txtNum.value = num;
}
function ftnTestB() {
\t var num = "(123) 456-7890";
\t txtNum.value = num;
}
function ftnTestC() {
\t var num = "123-456-7890";
\t txtNum.value = num;
}
<form novalidate="novalidate">
\t <input type="number" id="txtNum" />
\t <br/><br/>
\t <button type="button" onclick="ftnTestA();">1234567890 (works)</button>
\t <button type="button" onclick="ftnTestB();">(123) 456-7890 (no IE, no FF)</button>
\t <button type="button" onclick="ftnTestC();">123-456-7890 (works in IE, no FF)</button>
</form>
最新のバージョンのChromeでは、そのフィールドにかっこを入力することさえできません。ここには根本的な問題があると思う。 'novalidate'はあなたが当初考えていたことをやっていません。 –
ここで 'novalidate'は動作しません。それはあなたがそれを使用している場合のみ検証を遮断します。入力タイプが「番号」のフィールドは、数字以外の文字を受け入れません。 入力タイプを別のものに変更する必要がありますが、正しいタイプが私を逃してしまいます。 – Orpheus
"Javascript"は検証を無視していません。 HTML5フォームの検証と新しいHTML5入力タイプをサポートするかどうかは_browser_です。あなたの場合、ブラウザは "novalidate"を無視していません** - フォーム/フィールドの検証に関係なく、入力できるタイプを制限する入力タイプ ''です。そのフィールドには制限された文字列しか入力できません。 'E'を試してください。それは' 3.02E + 7'や '9.707E-12'のような科学的表記で数字を入力できるようになっています –