2009-11-09 2 views
30

Я показываю окно подтверждения JavaScript, когда пользователь нажимает кнопку «Удалить данные». Я его отображение, как показано на этом изображении:JavaScript: Как выбрать «Отмена» по умолчанию в поле подтверждения?

alt text

В изображении, кнопка «OK» выбран по умолчанию. Я хочу выбрать кнопку «Отмена» по умолчанию, так что, если пользователь случайно нажимает кнопку , введите, записи будут в безопасности и не будут удалены.

Есть ли способ JavaScript для того, чтобы выбрать кнопку "Отмена" по умолчанию?

+7

IMHO, вы не должны использовать кнопки ОК/Отмена или Да/Нет в диалогах. Лучше создайте свой собственный диалог в HTML и используйте кнопки «Удалить данные» и «Отменить удаление». Таким образом, пользователям не придется читать длинный текст, а только кнопки. То есть, всегда включать глагол в ярлык кнопки. –

+2

@Crescent: Ваш выбор, вы можете использовать этот тип материалов в своих приложениях. Меня это не интересует, спасибо. – Prashant

+0

@Markus, да, всегда лучше использовать пользовательские окна сообщений, но я просто хочу знать, есть ли способ установить кнопку по умолчанию в обычном флажке подтверждения javascript. – Prashant

ответ

10

Если вы можете использовать JQuery плагин, то здесь хороший один

jQuery Impromptu

Чтобы изменить значение по умолчанию сосредоточены кнопки:

$.prompt('Example 4',{ buttons: { Ok: true, Cancel: false }, focus: 1 }); 
+0

Любая причина для голосования? – rahul

+0

Тонкая проблема с этим решением заключается в том, что он нарушает правила пользовательского интерфейса платформы: хотя Windows помещает ОК до Отмена, большинство других графических операционных систем имеют порядок обратного. Наверное, это не огромная сделка :) – Nick

4

Я не думаю, что вы можете это сделать.

Но вы можете определенно сделать его более трудным для пользователя, чтобы случайно «согласен» с подтверждением, например, заставляя пользователя ввести «Y» в поле ввода:

agree = (prompt("Type 'y' to accept", '') == 'y'); 
+4

-1 Javascript 'prompt' - это дьявол. –

+2

@ josh- не могли бы вы объяснить? – Yarin

+0

@ Yarin Браузеры имеют настройки/опции, чтобы явно отключить эти подсказки. Достаточно сказано. –

9

Вы не можете этого сделать, но вы можете использовать/написать свой собственный диалог, который отображается с использованием элементов DOM (например, предположил phoenix, просто не обязательно должен быть этот конкретный плагин jQuery, вы можете написать свой собственный или использовать плагин из другой структуры JS).

Ответы «использование jQuery + plugin X» начинают раздражать. Там много JS-библиотек и еще больше плагинов. Например, использование любой библиотеки JS здесь не требуется, если вы просто хотите отобразить настраиваемый диалог. Хотя это быстрое решение/ответ, ответы вроде бы приносят больше вреда в долгосрочной перспективе, тогда это хорошо. Люди, которые не знакомы с JavaScript или вообще программируют, начинают думать, что jQuery и/или плагины - единственный способ пойти, и они включают библиотеку 50kb + только для записи 3 собственных строк (которые иногда даже не используют библиотеку: D).

На мой взгляд, комментарий Markus Johnsson - лучший ответ, стыдно, что он не размещен как один.

+0

Ну, это почти правда, но не забывайте, что каждый последний браузер имеет jQuery в кеше. – AbiusX

+2

@AbiusX, кеш не используется между разными сайтами. Также браузеры не могут хранить локальную копию, так как нет возможности проверить, что '' на самом деле jQuery. Поправьте меня если я ошибаюсь. –

+0

+1 для избежания ненужных подключаемых модулей – Medorator

 Смежные вопросы

  • Нет связанных вопросов^_^