2011-02-28 18 views
1

내 asp.net mvc 3 앱에서 jquery.validate를 사용하는 데 문제가 있습니다.jQuery를 사용하여 클라이언트 유효성 검사를 사용하여 통화 필드 유효성 검사

적어도 스페인에서는 ","을 사용하여 십진수에서 숫자를 분리합니다. 좋아, 서버 쪽 유효성 검사를 사용하여, 만약 내가 뭔가를 넣어 :

12.55 서버 유효성을 검사 할 때, 그 값이 유효하지 않습니다 말합니다. 내가 넣으면 : 12,55가 작동합니다.

jQuery 유효성 검사를 사용하면 12,55가 유효하지 않으며 12.55가 유효하다고 표시됩니다. 따라서 클라이언트는 유효성 검사를 통과하지만 서버는 그렇지 못합니다. 그렇지 않으면 클라이언트가 전달하지 않지만 서버는 성공합니다.

그래서 ... 그런 종류의 유효성 검사를 위해 로케일을 변경할 수 있습니까?

감사합니다.

PS : "."이 아닌 ","을 사용하여 서버의 유효성을 검사하려는 것을 어떻게 알 수 있습니까? 내가 어딘가에 지정했는지 기억이 안납니다.

답변

1

아마 당신이 포함되어야한다 현지화 파일 : 독일의 한에서

http://ajax.aspnetcdn.com/ajax/jQuery.Validate/1.7/localization/messages_es.js

http://ajax.aspnetcdn.com/ajax/jQuery.Validate/1.7/localization/methods_de.js

당신이 methods_de.js을 사용할 수 있도록, 숫자에 대해 동일한 규칙을 사용하거나

jQuery.extend(jQuery.validator.methods, { 
    number: function(value, element) { 
     return this.optional(element) || 
       /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value); 
    } 
}); 

포함 Here 1.6 버전 용 Microsoft CDN에서 호스팅하는 파일 목록 . 1.7 버전은 the same files입니다.

업데이트 : 데모 here을 참조하십시오.

+0

나는 methods_de로 시도했지만 "40,5"와 같은 숫자는 (0.01) 아래에 있으므로 범위 규칙이 실행됩니다. 왜 그것이 아래에 있다고 생각하는지 모르겠습니다. 글쎄, 앞으로 나아갈 것입니다. –

+0

@ Jesus Rodriguez : 데모를 준비하는 데 도움이되도록 http://www.ok-soft-gmbh.com/jQuery/validateDeNumber.htm. 그것은 당신이 원하는 것입니까? – Oleg

+0

@ Jesus Rodriguez : Range와 같은 서버에서 규칙을 설정하면 클라이언트에서 문제를 찾는 방법을 조사해야하지만 서버에서 Range 등을 미국 형식으로 배치해야한다고 가정합니다. – Oleg

0

당신은 클라이언트 웹 브라우저의 로케일을 사용하는 웹 응용 프로그램을 구성하는 시도 할 수 :

<system.web> 
    <globalization requestEncoding="utf-8" 
        responseEncoding="utf-8" 
        culture="auto" 
        uiCulture="auto" /> 
    ... 
</system.web> 

이 서버 측 유효성 검사를위한 브라우저 문화를 사용합니다. 클라이언트 측 검증에 관해서는 이미 브라우저 문화를 사용하고 있습니다. 따라서이 둘은 일치합니다.

+0

나를 위해 작동하지 않습니다. 인터넷 검색 어떤 사람들은 jquery.glob.js를 사용하고 있고 다른 사람들은 눈에 잘 띄지 않는 자바 스크립트를 사용하지 못하는 것으로 나타났습니다. 나는 세계화를 시도했지만 저를 위해 일하지 않습니다. 감사. –

관련 문제