سؤال

ولدي التعليمة البرمجية التالية. عند الضغط على زر حفظ بلدي، ثلاثة requiredfieldvalidators تشغيل غرامة وتعمل بشكل صحيح. ومع ذلك بلدي مدقق مخصص لا تعمل. فإنه لا إطلاق الحدث على الإطلاق. لدي مربعات النص القياسية وتحكم ValidationSummary. هل هناك أي سبب لماذا قد لا يكون العمل؟

<asp:RequiredFieldValidator runat="server" ControlToValidate="txtForename" Display="None" ErrorMessage="Must enter a valid first name." />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtSurname" Display="None" ErrorMessage="Must enter a valid last name." />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" Display="None" ErrorMessage="Must enter a valid e-mail address." />

<asp:CustomValidator runat="server" OnServerValidate="CheckAtLeastOnePhoneNumber" 
        ErrorMessage="Must enter at least one phone number." Display="None" 
        ValidateEmptyText="True" />

<script runat="server">
    void CheckAtLeastOnePhoneNumber(Object s, ServerValidateEventArgs e)
    {
        if (txtMobileNumber.Text.Equals("") &&
            txtWorkNumber.Text.Equals("") &&
            txtHomeNumber.Text.Equals(""))
        {
            e.IsValid = false;
        }
    }
</script>
هل كانت مفيدة؟

المحلول

وأنا ثابتة.

والتحكم المصادقة العرف هو الاختيار من جانب الخادم، وذلك المصادقون الأخرى (والتي هي العميل) تنفيذ أولا. هذا أمر مضلل قليلا حيث تحكم ValidationSummary عادة ما يعرض كافة الأخطاء المصادقة.

وإذا افترضنا أن اسم، كان البريد الإلكتروني وما إلى ذلك صحيح، وعندئذ فقط سيكون من تقدم إلى الخادم والخروج مع الخطأ التحقق من الصحة.

نصائح أخرى

وهذا صحيح. هذه هي الطريقة التي يعمل بها. إذا كنت ترغب في المصادقة مخصصة للعمل أيضا في المتصفح، تحتاج إلى تنفيذ المصادقة المخصصة في جافا سكريبت وتحديد الأسلوب في الممتلكات ClientValidationFunction عنصر التحكم. بعد ذلك سوف تظهر مع الأخطاء من جانب العميل في ملخص التحقق من الصحة.

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