2016-09-20 6 views
0

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>

+0

最新のバージョンのChromeでは、そのフィールドにかっこを入力することさえできません。ここには根本的な問題があると思う。 'novalidate'はあなたが当初考えていたことをやっていません。 –

+0

ここで 'novalidate'は動作しません。それはあなたがそれを使用している場合のみ検証を遮断します。入力タイプが「番号」のフィールドは、数字以外の文字を受け入れません。 入力タイプを別のものに変更する必要がありますが、正しいタイプが私を逃してしまいます。 – Orpheus

+0

"Javascript"は検証を無視していません。 HTML5フォームの検証と新しいHTML5入力タイプをサポートするかどうかは_browser_です。あなたの場合、ブラウザは "novalidate"を無視していません** - フォーム/フィールドの検証に関係なく、入力できるタイプを制限する入力タイプ ''です。そのフィールドには制限された文字列しか入力できません。 'E'を試してください。それは' 3.02E + 7'や '9.707E-12'のような科学的表記で数字を入力できるようになっています –

答えて

4

の代わりに使用してtype="number"入力フィールドの場合は、それが行われているので、type="tel"フィールドを使用してください。数値入力フィールドは数値用にのみ設計されています。

+0

ありがとう!これはまさに私が必要としていたものです。 – user1958866

関連する問題