2010-03-11 2 views
2

양식이 빈 필드와 함께 제출되면 다음 코드가 "오류"를 출력하지 않는 이유는 무엇입니까? Len은 수치 만 평가합니까?Len 함수는 수치 결과 만 평가합니까?

<cfif NOT Len(Trim("Form.myField"))> 
<cfoutput>Error</cfoutput> 
</cfif> 

다음은 또한 예상대로 평가하지 않습니다

<cfif Len(Trim("Form.myField")) IS 0> 
<cfoutput>Error</cfoutput> 
</cfif> 

HTML : 당신은 당신이 트림 함수 내에서 따옴표로 매개 변수에 전달되어 있는지

<input type="text" name="myField" value=""> 

답변

5

을 트리밍 할 수있다

시도 : <cfif len(trim(form.myField)) EQ 0>

+0

Duhhh ... 감사합니다! 나는 그것을 믿을 수 없다. 그리고 디테일에 대한 나의 관심이 아주 좋았다고 생각했습니다. 얼마나 어리석은 실수를 저질렀 어! – Mohamad

+1

isDefined()가 약간 다르며 다른 기능을 사용할 때 인용 부호가 필요합니다. 마침내 그것에 익숙해졌고 (꽤 많이 isDefined()를 사용하여 중단되었습니다). 그래서, 당신은 혼자가 아닙니다. – ale

+0

당신은 그것을 믿을 수 없을 것입니다. Al : 제 코드로 돌아가서 (나는 isDefined를 사용하고 있습니다.) 그리고 따옴표를 제거하고 코드가 다시 작동하지 않게되었습니다. 다시 물어 보려고 여기로 돌아와서 당신의 추가 코멘트를 보았습니다. 이제 상황이 좋습니다. 하지만 isDefined 사용을 어떻게 중단 할 수 있습니까? 제 경우에는 무언가가 정의되지 않았는지 확인하고 길이가 0이면 오류를 출력합니다. 및 cfelse를 사용하여 쿼리를 처리합니다. 당신의 대안은 무엇입니까? – Mohamad

1

있습니다 ? 그것은 길이가 0이 아닌 리터럴 문자열 "FORM.MYFIELD을"평가이기 때문에 말 그대로 문자열 "FORM.MYFIELD"