سؤال

لدي التحقق من صحة مخصصة وظيفة في جافا سكريبت في السيطرة على .Net 2.0 موقع ويب الذي يتحقق أن نرى أن الرسوم المدفوعة لا يتجاوز مبلغ الرسوم المستحقة.

لقد وضعت مدقق رمز في ascx الملف وأنا أيضا حاولت استخدام Page.ClientScript.RegisterClientScriptBlock() و في كلتا الحالتين التحقق الحرائق, ولكن لا يمكن العثور على وظيفة جافا سكريبت.

الإخراج في فايرفوكس خطأ وحدة "feeAmountCheck is not defined".هنا هي وظيفة (هذه كانت مأخوذة مباشرة من فايرفوكس->عرض المصدر)

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

أي الأفكار لماذا وظيفة لم يتم العثور عليها ؟ كيف يمكن علاج هذا دون الحاجة لإضافة وظيفة إلى الصفحة الرئيسية أو المستهلكة الصفحة ؟

هل كانت مفيدة؟

المحلول

حاول تغيير الحجة أسماء sender و args.و بعد الانتهاء من العمل, مفتاح الاتصال على ScriptManager.RegisterClientScriptBlock, بغض النظر عن استخدام اياكس.

نصائح أخرى

عندما كنت تستخدم .Net 2.0 و اياكس - يجب استخدام:

ScriptManager.RegisterClientScriptBlock

وسوف تعمل على نحو أفضل في اياكس البيئات ثم الصفحة القديمة.ClientScript الإصدار

أيضا يمكن استخدام:

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

التي سوف تحل تلقائيا العميل معرف العنصر دون الحاجة إلى معرفة أن هذا يسمى 'ctl00_footerContentHolder_Fees1_FeeDue'.

بينما أنا لا تزال ترغب في إجابة لماذا جافا سكريبت لم يكن معترف به ، فإن الحل وجدت في هذه الأثناء (وما ينبغي القيام به في المقام الأول) هو استخدام Asp:CompareValidator بدلا من Asp:CustomValidator.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top