2011-05-04 3 views
0

난 내가 마우스에서 붙여 넣기 값을 restrick 할 싶어, 숫자 만 허용 할 수 있지만, JS를 사용하여양식의 붙여 넣기 값을 제한하는 방법은 무엇입니까? 없음 확인이 필요합니다 :

<input name="phNumber" type="text" class="numbersonly"/> 

전화 번호 필드를 포함하는 폼 ...

가 {주를 이 필드에}

+1

* 왜 * "내가 마우스에서 붙여 넣기 값을 restrick 할 싶어?" 왜 사용자가 그들에게 맞는 것을 해보지 않겠습니까? –

+0

유효성이 확인되지 않은 경우 붙여 넣기가 왜 중요합니까? –

+0

나는 데이터베이스에 전화를 저장하고보기 측면에서 검색하고 싶습니다. – K6t

답변

2

당신은 당신의 입력 구성 요소에 이벤트를 바인딩 할 수 있습니다 :

$('selector').bind('paste', function() { 
    return false; 
}); 

참조를 참조하십시오 : jQuery API - bind

+0

y 복잡함 – K6t

+1

이것은 특정 이벤트에 반응하는 구성 요소에 함수를 바인딩합니다. 나는 복잡한 것을 보지 못했다. – timbooo

+0

timmboo ii ii sir ,, – K6t

1

change 이벤트에 응답하여 비 숫자를 제거 할 수 있습니다. 이외의 모든 숫자와 일치하고 (이 경우, 아무것도   — "") 대체 문자열로 대체하는 정규 표현식 (/\D/g)를 사용

$("input.numbersonly").change(function() { 
    this.value = this.value.replace(/\D/g, ""); 
}); 

. \D 부분은 "숫자가 아닌"부분이며 g은 "전역"(문자열 전체에서)을 의미하는 플래그입니다. 난 정말, 정말 전화 번호 필드에있는 모든 비 숫자를 허용하지 않을 것이다 : 오프 주제


. 사람들은 공백, 하이픈, 아마도 괄호 또는 더하기 기호 (예 : +1 (408) 123-4567)로 전화 번호를 쓰는 데 익숙합니다. 이 단서를 제거하면 전화 번호를 읽는 것이 매우 어려워서 (정확하게 입력하기가 어려울 수 있습니다). 사용자가 숫자를 올바르게 입력하도록 하시겠습니까? 어떤 경우에, 나는 검증을 꽤 열어 두었다.

+0

"/ \ D/g," "" – K6t

+0

을 바꿉니다. "죄송합니다. 정규 표현식을 설명하려고했습니다. 지금 해. –

+0

나중에 나는 모든 브라우저에서 작동하지 않습니다. fyi : onPaste는 모든 브라우저에서 작동하지 않습니다.
K6t

관련 문제