2017-06-03 8 views
-3

私は数字と特殊文字を除いた " - "をテキストボックスに入力することができます。マイナス記号も。 ' - ' 事前に数字と特殊文字( - )のみをテキストボックスに入力できるようにする

おかげ

<script> 
function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
     return false; 
    } 
    return true; 
} 
</script> 


<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" /> 
+0

正規表現を使用してみてください。 – xDreamCoding

+0

HTML5 ['pattern'](https://developer.mozilla.org/en/docs/Web/HTML/Element/input#attr-pattern)属性を調べる必要があります。 – Siguza

+0

regexを使用して同じコードで私を助けることができます – jai

答えて

0

!=45が十分でない追加。無効なキー入力の受け入れも防止する必要があります。 true/falseを返すと、ユーザーはそれらのキーを入力することができ、コードは何もしないように見えます。

if ((charCode < 48 || charCode > 57) && charCode != 45) { 
    evt.preventDefault(); 
} 

この方法では、有効なキー入力のみがテキストボックスに表示されます。

+0

ありがとうniksofteng – jai

0

は、この正規表現は、数字とをチェックします。他の文字がある場合、それらは置き換えられます。

$('.input').keyup(function() { 
    if (!this.value.match(/^(\d|-)+$/)) { 
     this.value = this.value.replace(/[^0-9-]/g, ''); 
    } 
}); 

なしjQueryのバージョン:

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeyup="isNumber()" /> 

function isNumber() { 
    var inputField = document.getElementById('extra7'); 
    if (!inputField.value.match(/^(\d|-)+$/)) { 
     inputField.value = inputField.value.replace(/[^0-9-]/g, ''); 
    } 
} 
+0

'jquery'タグが付けられていない場合、Q&Aは普通のJSであるはずです。 – niksofteng

+0

@niksofteng right、それを追加 – petul

関連する問題