Можно ли запустить проверку asp.net из jQuery? - PullRequest
4 голосов
/ 07 апреля 2010

У меня есть форма с несколькими текстовыми полями. Я только хочу принимать поплавки, но вполне вероятно, что пользователи введут знак доллара. Я использую следующий код для удаления знаков доллара и проверки содержимого:

JQuery:

            $("#<%= tb.ClientID %>").change(function() {
                var ctrl = $("#<%= tb.ClientID %>");
                ctrl.val(ctrl.val().replace('$',''))
            });

проверка asp.net:

<asp:CompareValidator ID="CompareValidator4" runat="server" Type="Double" ControlToValidate="tb" Operator="DataTypeCheck" ValidationGroup="vld_Page" ErrorMessage="Some error" />

Моя проблема в том, что когда кто-то вводит знак доллара в TextBox "tb" и меняет фокус, сначала происходит проверка, а затем jQuery удаляет знак доллара. Возможно ли сначала запустить jQuery или заставить запуск проверки снова после выполнения jQuery?

Ответы [ 3 ]

6 голосов
/ 07 апреля 2010

Все валидаторы ASP.Net имеют клиентский API, который вы можете подключить. Вы можете посмотреть документацию и обсуждение по ней здесь .

В частности, вы, вероятно, захотите сделать это вызвать функцию javascript

ValidatorValidate(document.getElementById("<%= myValidator.ClientID %>"));

чтобы заставить валидатор перезапустить свою процедуру валидации на стороне клиента и обновить его отображение.

0 голосов
/ 26 января 2016

Попробуйте вызвать метод jquery .change().

Например:
$("#Symbol").val(""); $("#Symbol").change();

Иногда недостаточно просто вызвать .val().

0 голосов
/ 07 апреля 2010

Вместо использования события изменения, почему бы вам не использовать событие KeyPress и не обрабатывать там знак $. Таким образом, пользователь не сможет набрать $.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...