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

голоса
23

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

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

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

<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>

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

Задан 04/08/2008 в 17:44
источник пользователем
На других языках...                            


4 ответов

голоса
6

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

ScriptManager.RegisterClientScriptBlock

Она будет работать лучше в среде Ajax тогда старая версия Page.ClientScript

Ответил 04/08/2008 в 17:51
источник пользователем

голоса
12

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

Ответил 04/08/2008 в 18:02
источник пользователем

голоса
0

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

Ответил 04/08/2008 в 20:13
источник пользователем

голоса
0

Кроме того, вы можете использовать:

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

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

Ответил 13/06/2009 в 19:10
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more