آسيا والمحيط الهادئ: RadioButtonList تزال مشاركة الرجوع الى الخادم حتى عندما فشل التحقق من صحة العميل؟

StackOverflow https://stackoverflow.com/questions/261547

سؤال

ويرتبط هذا الاستعلام إلى هذا واحدة سألت في الامس. لدي قائمة زر الاختيار على صفحة asp.net بلدي محددة كما يلي:

<asp:RadioButtonList ID="rdlSortBy" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" AutoPostBack="True" >
       <asp:ListItem Selected="True">Name</asp:ListItem>
        <asp:ListItem>Staff No</asp:ListItem>
</asp:RadioButtonList>

في جانب العميل، أنا أفعل التصديقات التالية:

rdlSortBy.Attributes("onclick") = "javascript:return prepareSave() && prepareSearch();"

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

وماذا يمكن أن يحدث خطأ؟

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

المحلول

وأنا ثابت هذا، وكانت المشكلة التي كنت ربط "عند _ النقر" من RadioButtonList بدلا من ذلك على أزرار الفردية.

وهذا هو الإصلاح:

rdlSortBy.Items(0).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"
    rdlSortBy.Items(1).Attributes("onclick") = "javascript:return isDirtied() && prepareSearch();"

نصائح أخرى

والرمز OnClick تستخدمه ل"صحة" يتم تشغيل وثم رمز الذي المشاركات التي ظهر الشكل الذي يضخ عنصر التحكم نفسه يتم تشغيل.

وتحتاج إلى اعتراض هذه العملية إعادة النشر ومنعه قبل أن ظائف شكل من جانب العميل. وأفضل طريقة للقيام بذلك يكون مع CustomValidator وتحديدا "ClientValidationFunction" الملكية. وهذا سوف يسمح جافا سكريبت للإشارة إلى أن فترة ما بعد الظهر لا يجب أن تحدث بسبب خطأ في التحقق من الصحة.

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