Самый безопасный способ убедиться, что кнопка HTML не отправляет какую-либо информацию на сервер - PullRequest
2 голосов
/ 14 февраля 2009

Я работаю над приложением javascript, которое имеет форму с кнопкой, которая обрабатывает входные данные в браузере. Важно, чтобы данные никогда случайно не отправлялись на сервер при нажатии кнопки. Ситуации, в которых это может произойти, если в браузере не включен javascript или в реализации DOM может быть ошибка, когда привязка щелчка по кнопке на короткое время теряется (я видел, что это происходило один раз в тестировании, но не воспроизводимым способом) .

Очевидный способ сделать это, по-видимому, не иметь кнопку или кнопку отправки, а какую-то другую структуру, которую я бы выглядел как кнопка. Есть лучшие идеи? Есть ли что-то вроде атрибута формы, который запрещает отправку данных из формы и хорошо реализован во всех браузерах?

Спасибо

Ответы [ 5 ]

10 голосов
/ 14 февраля 2009
<input type="button">

не отправляет форму, в отличие от

<input type="submit"> 
1 голос
/ 14 февраля 2009

Попробуйте использовать <input type="button">, который не в форме. Таким образом, даже если кнопка нажата, и даже если браузер каким-то образом ошибочно считает, что он должен что-то отправить, он не будет знать, куда отправлять данные для обработки, поскольку с кнопкой не связан атрибут action.

В качестве альтернативы вы можете посмотреть на этот вопрос относительно кнопок CSS без изображения, используемых в Gmail.

0 голосов
/ 14 февраля 2009

Вам разрешено иметь кнопки и входные данные за пределами <form>, и в этом случае невозможно представить что-либо на сервер.

0 голосов
/ 14 февраля 2009

Попробуйте создать просто кнопку:

<input type="button" value="some text">

Вы можете использовать обработчик onclick = для обработки данных.

Если вы хотите использовать более удобные кнопки без ввода, посмотрите, что делает Gmail: http://stopdesign.com/archive/2009/02/04/recreating-the-button.html

0 голосов
/ 14 февраля 2009

Конечно, какая-то кнопка с изображением подойдет? Создайте красивое изображение и используйте событие onclick для отправки сообщения обратно? Безусловно, решит проблему с отключенным JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...