2016-07-26 6 views
1

入力がpattern属性で指定されたパターンと一致しない場合、ブラウザはフィールドのツールチップに「この形式を使用する必要があります。ASP.NET/MVCで定義されているHTML5検証のヒントを非表示

私はこのツールチップメッセージをまったく隠すことはできません。 「私はそれがもたらす静止画

@Html.TextBoxFor(model => model.tbMyNumber, new { @pattern = "[0-9]{6,}", title="" }) 

を書くときにも原因 『あなたはこの形式を使用する必要があります。』このフィールドのツールチップに。 どうすればこの問題を回避できますか?

+0

メッセージを表示したくない場合は、パターン属性を削除するだけです。それを隠そうとすると、なぜフォームを送信できないのか不思議に思うユーザーには混乱します。つまり、あなたのパターンに合わないものをユーザがフォームに投稿しようとすると、正確に何をしたいのですか? – smerny

+0

入力が無効な場合、フィールドはすでに赤色(薄い赤色の背景、暗い赤色の境界線)にcssでマークされています。標準の検証メッセージも非表示になっています。ちょうどツールチップが消えることはなく、なぜ私は見ていない。 – SchweizerSchoggi

答えて

0

私はそれはあなたが答えとして期待するものではないと思いますが、あなたはおそらくjavascriptの

HTMLと周りの問題を作業することができます:文字列は、少なくとも6桁

<br/> 

<input type="text" onkeyup="isNumber(this)" onblur="lengthValidation(this)"> 
でなければなりません*

Javascriptを

function isNumber(textbox) 
{ 
    textbox.value = textbox.value.replace(/[\D]+/, ''); 
} 

function lengthValidation(textbox) 
{ 
    if (textbox.value.length < 6) { 

    document.getElementById("error").style.display = 'block'; 

    } else { 

    document.getElementById("error").style.display = 'none'; 
    } 
} 

ここでテストしてください:https://jsfiddle.net/mvxeous4/1/

+0

はい、このサンプルは動作しますが、HTML5のパターンと検証で解決したいので、現在説明されている問題の解決策ではありません。 – SchweizerSchoggi

1

JavaScriptを追加しないとやりたいことができないと思います。単純な代替案は、値がパターンに一致しない場合、ツールチップを表示することなく...(例は、以下のjQueryを使用して示されている)の代わりにJavaScriptを使用して確認する

$('#myform').submit(function() { 
    if(!/^[0-9]{6,}$/.test($('#mytext').val())) { 
    return false; 
    } 
}); 

これは提出からフォームを妨げるであろう...あなたが代替フォームを持っていることを確認して、ユーザーがなぜフォームを送信できないのか不思議ではないようにしてください。

関連する問題