防止在欄位中輸入無效字元:綜合指南
<p><code>Onkeydown</code>,我執行以下 JavaScript:</p>
<pre class="brush:php;toolbar:false;">function ThisOnKeyDown(el) {
if (el.title == 'textonly') {
!(/^[A-Za-zÑñ-s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-s]/ig, '') : null;
}
if (el.title == 'numbersonly') {
!(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
}
if (el.title == 'textandnumbers') {
!(/^[A-Za-zÑñ0-9-s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-s ]/ig, '') : null;
}
}</pre>
<p>這三個標題屬性之一被賦予頁面上的各個輸入欄位。只要正確刪除無效字符,該代碼就可以工作,但直到輸入下一個字符為止。我想找到一種方法來簡單地拒絕無效輸入。感謝您的幫忙! </p>
<p><strong>編輯</strong>:我在全球創建事件。我是這樣做的:</p>
<pre class="brush:php;toolbar:false;">function Globalization() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i ) {
inputs[i].onfocus = createEventHandler(
ThisOnFocus, inputs[i]);
inputs[i].onblur = createEventHandler(
ThisOnBlur, inputs[i]);
inputs[i].onkeydown = createEventHandler(
ThisOnKeyDown, inputs[i]);
inputs[i].onkeyup = createEventHandler(
ThisOnKeyUp, inputs[i]);
}
}</pre>
<p><code>全球化()</code>運行<code>body.onload</code></p>
<p>因此,典型的輸入欄位具有 HTML,沒有像這樣的函數呼叫:</p>
<pre class="brush:php;toolbar:false;"><input id="AppFirstName" style="width: 150px;" type="text" maxlength="30" title="textonly"/> ;</pre>
<p><br /></p>