проверка клиента с использованием jQuery validate для полей валюты - PullRequest
1 голос
/ 28 февраля 2011

У меня проблема с использованием jquery.validate в моем приложении asp.net mvc 3.

По крайней мере, в Испании мы используем ",", чтобы отделить число от его десятичных дробей. Хорошо, используя проверку на стороне сервера, если я добавлю что-то вроде:

12.55, когда сервер проверяет его, он говорит, что значение недопустимо. Если я поставлю: 12,55, это работает.

Пока все хорошо, но если я использую jQuery validate, он говорит, что 12,55 недействительно, а 12,55 допустимо. Таким образом, клиент проходит проверку, а сервер - нет, или клиент не проходит, но сервер проходит.

Итак ... я могу изменить локаль для такого рода проверки?

Спасибо.

PS : Как сервер знает, что я хочу проверить, используя ",", а не "."? Я не помню, указывал ли я это где-нибудь.

Ответы [ 2 ]

1 голос
/ 28 февраля 2011

Возможно, вам следует включить файлы локализации:

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);
    }
});

Здесь список файлов, размещенных в Microsoft CDN для версии 1.6. В версии 1.7 те же файлы .

ОБНОВЛЕНО : см. Демонстрацию здесь .

0 голосов
/ 28 февраля 2011

Вы можете попробовать настроить ваше веб-приложение для использования языкового стандарта веб-браузера клиента:

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

При этом будет использоваться культура браузера для проверки на стороне сервера. Что касается проверки на стороне клиента, то она уже использует культуру браузера. Так что это гарантирует, что оба совпадают.

...