>  Q&A  >  본문

필드에 유효하지 않은 문자 입력 방지: 종합 가이드

<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, '') : 없는; } 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;">함수 세계화() { var inputs = document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { inputs[i].onfocus = createEventHandler( ThisOnFocus, 입력[i]); inputs[i].onblur = createEventHandler( ThisOnBlur, 입력[i]); inputs[i].onkeydown = createEventHandler( ThisOnKeyDown, 입력[i]); inputs[i].onkeyup = createEventHandler( ThisOnKeyUp, 입력[i]); } }</pre> <p><code>globalization()</code>run<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>
P粉124890778P粉124890778389일 전468

모든 응답(2)나는 대답할 것이다

  • P粉034571623

    P粉0345716232023-08-28 14:43:57

    위의 코드는 이를 보여줍니다. 숫자만 허용됩니다. 예를 들어 BACKSPACE와 같은 예외를 추가하여 수정할 수 있습니다

    으아악

    회신하다
    0
  • P粉807471604

    P粉8074716042023-08-28 10:06:49

    애초에 설정되는 것을 방지하려면 keydown 이벤트 핸들러에서 false를 반환하여 이벤트가 더 이상 전파되는 것을 방지할 수 있습니다.

    아래 예제는 jQuery를 사용하여 작성했지만 기존 바인딩에서도 동일한 기능을 사용할 수 있습니다.

    서버 측 검증도 중요하지만 사용자 친화성을 위해서는 클라이언트 측 검증도 중요합니다.

    으아악

    회신하다
    0
  • 취소회신하다