Back to "Справді чудовий метод перехрестя для виконання " Типові кнопки " - так, що, коли ви натиснете Enter, правильна кнопка " клікне ""

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET Imported JavaScript mostlylucidcouk Web Development

Справді чудовий метод перехрестя для виконання " Типові кнопки " - так, що, коли ви натиснете Enter, правильна кнопка " клікне "

Wednesday, 24 March 2004

Це одна з головних проблем інтерфейсу користувача, яка, по суті, викликана правилом " однієї форми" ASP.NET, як ДарреллCity in Manitoba Canada вказує на те, що існує багато розв'язків, але жоден з них насправді не розв'яже всієї проблеми (тобто, для всіх браузерів), що ж, тепер є чудове рішення - з Блог Даррела Нортона (посилання: (репродукція тут, тому що я ніколи більше не знайду її...)

Надсилання типових кнопок після натискання користувачем клавіші Enter - нарешті!

Однією з найскладніших речей у веб-розробці є отримання певної кнопки для надсилання, якщо на сторінці є декілька кнопок. Metabuilders Знаменита, має таку, яка працює на браузерів пізньої моделі.

Через суворі вимоги клієнтів до публічного сайту, мені потрібно було щось, що йшло далі в історії браузера. Janus Kamp Hansen Это сработало только на IE.

Я продовжив роботу з Mozilla і Netscape 6+, потім додав ще коду, щоб змусити його працювати з більшості переглядачів Netscape 4+4. Потім я підлаштував продуктивність трохи, і це робить це! Швидкий, простий до використання фрагмент коду для примусового запуску специфічних кнопок надсилання з визначених розробниками текстових скриньок.

Спочатку скопіюйте цей метод до легкодоступного місця:

публічна void Set DefaultPage page, TextBox textControl, button defaultButton)

{

  *// 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 = @"*

<Мова SCRIPT=" "javascript">

funTrapKD=btn, подія) {

if (документ.all) {

if (Event.keyCode == 13) {

подія. returnValue=false;

accance. cancel = true;

btn. flick=);

}

}

else if ( document. getElmementById){

if (Event. who = 13) {

подія. returnValue=false;

accance. cancel = true;

btn. flick=);

}

}

else if}ud. memors) {

if'event. who = 13) {

подія. returnValue=false;

accance. cancel = true;

btn. flick=);

}

}

}

</ SCRIPT>";

  *Page.RegisterStartupScript("ForceDefaultToScript", theScript);*

  *textControl.Attributes.Add("onkeydown", "fnTrapKD(" + defaultButton.ClientID + ",event)");*

}

Цей код реєструє даний скрипт за допомогою сторінки. Потім він додає атрибут до текстової скриньки, яка у цьому випадку є подією надKeyDown, яка викликає функцію fnTrapKD за допомогою кнопки ep clientID (це додає HTML ІД у відтвореному HTML) і подією. Я повинен був передати цю подію через те, що навігатори Netscape/ Mozilla можуть спіймати цю подію, якщо ви не передаєте її функції. IE може отримати доступ до події з об' єкта документа, але ми хочемо, щоб вона була сумісною з чимось приємним і перехідним.

Документ. all, якщо команда покриває IE. Документ. get ElectomById охоплює переглядачі Netscape 6+ і Mozilla. Документ. layers, якщо команда працює з Netscape 4+.

Тепер додайте рядок коду, який з' єднує всі текстові поля, які ви бажаєте бачити за допомогою певної кнопки надсилання. Наприклад:

  *SetDefaultButton(this, TextBox1, Button1);*

  *SetDefaultButton(this, TextBox2, Button2);*

  *SetDefaultButton(this, TextBox3, Button3);*

Зазвичай я записую це на сторінці_ Load, оскільки метод Page. ReegisterStartupScript ігноруватиме дублікати скриптів. Тепер вам просто слід викликати пункт Встановити Неявну кнопку для кожної з асоціацій кнопок textbox- submit.

І якщо взяти до уваги кількість Netscape 4 версій (і їх недоліки), то вона, ймовірно, працює над усіма ними, але вона працює (на даний час).

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.