2011-09-19 4 views
2

내가 작성한 다른 글에서는 텍스트 상자와 텍스트 영역에서 빈 값을 확인하기 위해 빈 값을 확인하기 위해 $ .trim과 함께 .val()을 사용해야한다고 설명했다. 예 :jquery .trim() with textboxes

if($.trim($("#textboxid").val()) == "") { 
    //do something 
} 

누군가 여기서 설명 할 수있는 이유를 설명 할 수 있습니까? 텍스트 상자에 숨겨진 공백이나 캐리지 리턴이 있습니까?

+0

. 이것을 엄지 손가락으로 생각하지 마십시오. –

+0

내 생각 엔 그 글의 저자는 의도적으로 공백을 입력하는 사용자를 잡으려고했다.이 경우'val()'은 빈 문자열이 아니고 잘린 상태로 잡히게된다. –

+0

이 예는 아마도 사용자가 공백을 추가하여 항목을 가짜로 만들 수 있다는 사실을 기반으로합니다. 따라서 여러 공백 검사를 수행하는 대신 공백 검사를 제거하고 공백 입력을 확인합니다. 그것이 당신이 검증하기를 원하는 것이라면 실제로는 꽤 좋은 생각입니다. – Seth

답변

1

trim은 사용자가 공간에 넣으면 값처럼 취급하지 않기 때문에. 함께 트리밍을 사용하면
" " 값이 ""이됩니다.

-1

누군가가 텍스트 상자를 자르려고하는지 여부에 관계없이 응용 프로그램마다 다릅니다. 일반적으로 볼 수 없으므로 탐지하기가 어렵습니다.

자바 스크립트에서 많은 것들을 (일반 프로그래밍)와 마찬가지로
2

, 그것의 모든 강력한유지 보수 코드를 작성하는 방법에 대한. 이 코드는 잘못된 사용자 입력에보다 관대합니다. 사용자가 거기에 공간을두고 그것에 대해 잊어 버리면 시각적으로 말할 수 없습니다. 필드에 공백이 있는지 확인하여이 시나리오를 처리합니다.

그러나 모든 시나리오에서 적절하지 않을 수 있습니다!

또한, 같은 우리가 "강력하고 유지 관리가"코드를 얘기로, 명시 적 동등성 사업자보다는 truthy/falsey 테스트를 사용해야합니다 :

$.trim($("#textboxid").val()) === "" 
당신이 달성하려고하는 무엇에 따라 달라집니다