# حقاً نقيض جميل -أسلوب ब्राउज़र للقيام بـ"'أزرارDefaultButtons' الشيء" - بحيث عندما تضغط على "Enter" , , تُضغط على الزر الصحيح .

<datetime class="hidden">2004-03-24T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, JavaScript, Web Development -->
هذه واحدة من المشاكل الرئيسية في واجهة المستخدم التي هي أساسا مسببة من قبل ASP [داريل](http://dotnetjunkies.com/WebLog/darrell.norton/) يشير إلى هناك ' هناك عدد من الحلول لكن لا أحد منهم بالفعل يحل المشكلة بأكملها [مدونة داريل نورتون](http://dotnetjunkies.com/WebLog/darrell.norton/) ([الروابط](http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/03/03/8374.aspx)): (تم إنتاجه هنا لأني' لن أجده مجدداً إن لم يكن ذلك

> ## [*إرسال أزرار تلقائية عندما يضغط المستخدم على مفاتيح إدخال - أخيرا!*](http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/03/03/8374.aspx)
> 
> *أحد أصعب الأشياء في تطوير الشبكة هو الحصول على زر معين ليرسله إذا كان لديك أكثر من زر واحد على الصفحة* [*صانعي المجاز*](http://www.metabuilders.com/) *المشاهير, لديه واحد يعمل على متصفحات النماذج*
> 
> *وبسبب متطلبات زبائن قاسية جداً لموقع تجاري عام* [*جانوس كمپ هانسن*](http://www.kamp-hansen.dk/pages/showdoc.asp?id=28&menuid=21&menuid=18) *التي تعمل فقط على IE.*
> 
> *قمت بتوسيعه للعمل مع Mozilla و Netscape 6+, ثم أضافت المزيد من البرمجة لجعله يعمل مع معظم браузерات Netscape*
> 
> *أولا, نسخ هذه الطريقة إلى مكان متاح بسهولة*
> 
> *الفراغ العام امضي مفتاح تلقائي ( صفحة الصفحة , TextBox textControl*
> 
> *{*
> 
>       *// Sets default buttons.*
>     
>       *// Originally created by Janus Kamp Hansen - http://www.kamp-hansen.dk*
>     
>       *// Extended by Darrell Norton - http://dotnetjunkies.com/weblog/darrell.norton/* 
>     
>       *//   -- added Mozilla support, fixed a few issues, improved performance*
>     
>       *string theScript = @"*
> 
> *&lt;لغة SCRIPT=""javascript""&gt;*
> 
> *Function fnTrapKD(btnM SK1 event){*
> 
> *إذا (documentM SK1all){*
> 
> *إذا (حدث.رمز مفاتيح == 13){*
> 
> *الحدث.returnValue=falseM SK2*
> 
> *event.cancel M SK1 true;*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *إلا إذا كان (document.getElementByIdM SK2*
> 
> *إذا (حدثM SK1أي == 13){*
> 
> *الحدث.returnValue=falseM SK2*
> 
> *event.cancel M SK1 true;*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *إلا إذا كان ( "document" . "layers" ){*
> 
> *إذا (حدث.أي == 13){*
> 
> *الحدث.returnValue=falseM SK2*
> 
> *event.cancel M SK1 true;*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *}*
> 
> *&lt;/SCRIPT&gt;";*
> 
>       *Page.RegisterStartupScript("ForceDefaultToScript", theScript);*
>     
>       *textControl.Attributes.Add("onkeydown", "fnTrapKD(" + defaultButton.ClientID + ",event)");*
> 
> *}*
> 
> *هذا الرمز يسجل النص المعطى بالصفحة . ثم يضيف خاصية للصندوق النصي , الذي في هذه الحالة هو حدث onKeyDown الذي يتصل ب関ية fnTrapKD بضغطة الزر | ’ | clientID |( | it | ’ | HTML ID في HTML المحوّل ♫ ) | event | МSK6 . كان عليّ أن أدخل هذا الحدث لأننا نستخدم Netscape . . / . متصفحات Mozilla لا يمكننا سحب هذا النوع من الحدث , إلا إذا قمت بتحويله إلى الوظيفة .*
> 
> *الوثيقة.كل إذا كان الاستبيان يغطي IE. الوثيقM SK2getElementById يغذي Netscape 6+ ومتصفحات MozillaMSC4 الdocumentMST5layers إذا كان الإستبيان يعمل مع Netscape*
> 
> *الآن أضف سطر من البرمجة يربط كل صندوق نص تريده بزر إدخال معين.*
> 
>       *SetDefaultButton(this, TextBox1, Button1);*
>     
>       *SetDefaultButton(this, TextBox2, Button2);*
>     
>       *SetDefaultButton(this, TextBox3, Button3);*
> 
> *عادة أضع ذلك في الصفحة\_Load, since the PageM SK2RegisterStartupScript method will ignore duplicate scriptsMNK3 Now it is simply a matter of making a call to SetDefaultButton for each textboxMRK4submit button associationMK5*
> 
> *لم أختبر هذا بعد بكثرة , وبعض البرمجيات JavaScript قد تكون غير ضرورية . وبالنظر إلى عدد إصدارات Netscape | 4 | versions |( | and their bugginess | ), | ربما لا يعمل على جميعها | МSK6 | doesn't work on all of them | مSK7 | But it works | امسك8 | for now | المسك9 | And at least making an attempt at Netscape*