Вопрос:

Валидация клиентской стороны ASP.Net

asp.net javascript validation

2781 просмотра

5 ответа

12013 Репутация автора

У меня есть пользовательская функция проверки подлинности в JavaScript в пользовательском элементе управления на веб-сайте .Net 2.0, который проверяет, не уплачена ли уплаченная плата, кроме суммы комиссии.

Я поместил код проверки в ascxфайл, и я также попытался использовать, Page.ClientScript.RegisterClientScriptBlock()и в обоих случаях срабатывает проверка, но не может найти функцию JavaScript.

Вывод в консоли ошибок Firefox "feeAmountCheck is not defined". Вот функция (это было взято непосредственно из firefox-> view source)

<script type="text/javascript">
    function feeAmountCheck(source, arguments)
    {
        var amountDue = document.getElementById('ctl00_footerContentHolder_Fees1_FeeDue');
        var amountPaid = document.getElementById('ctl00_footerContentHolder_Fees1_FeePaid');

        if (amountDue.value > 0 && amountDue >= amountPaid)
        {
            arguments.IsValid = true;
        }
        else
        {
            arguments.IsValid = false;
        }

        return arguments;
    }
</script>

Любые идеи относительно того, почему функция не найдена? Как я могу исправить это, не добавляя функцию на мою главную страницу или страницу потребления?

Автор: Rob Allen Источник Размещён: 04.08.2008 04:44

Ответы (5)


7 плюса

21826 Репутация автора

Когда вы используете .Net 2.0 и Ajax - вы должны использовать:

ScriptManager.RegisterClientScriptBlock

Он будет работать лучше в средах Ajax, чем в старой версии page.ClientScript

Автор: brendan Размещён: 04.08.2008 04:51

13 плюса

15358 Репутация автора

Решение

Попробуйте изменить имена аргументов в senderи args. И после того, как вы его заработаете, переключите вызов ScriptManager.RegisterClientScriptBlock, независимо от использования AJAX.

Автор: Greg Hurlman Размещён: 04.08.2008 05:02

0 плюса

12013 Репутация автора

Хотя мне все же хотелось бы ответить на вопрос, почему мой javascript не был распознан, решение, которое я нашел в это время (и должно было сделать в первую очередь), - это использовать Asp:CompareValidatorвместо него Asp:CustomValidator.

Автор: Rob Allen Размещён: 04.08.2008 07:13

0 плюса

149 Репутация автора

Также вы можете использовать:

var amountDue = document.getElementById('<%=YourControlName.ClientID%>');

Это автоматически разрешит идентификатор клиента для элемента без необходимости выяснять, что он вызван 'ctl00_footerContentHolder_Fees1_FeeDue'.

Автор: kpax Размещён: 13.06.2009 06:10

1 плюс

11 Репутация автора

Попробуйте изменить имена аргументов в senderи args. И после того, как вы его заработаете, переключите вызов ScriptManager.RegisterClientScriptBlock, независимо от использования AJAX.

полезно для вас! :)

Автор: hardik virani Размещён: 17.11.2018 04:26
Вопросы из категории :
32x32