Наличие нескольких кнопок на странице - PullRequest
2 голосов
/ 22 июля 2010

У меня много кнопок отправки по одной для каждой строки в таблице.Всякий раз, когда я нажимаю на эту кнопку, должен запускаться вызов Ajax.Прямо сейчас я обертываю каждую кнопку внутри тега формы.Это хороший подход?Если нет, то как лучше это сделать.
Более того, я буду в конечном итоге заменять кнопку изображением.

Посоветуйте, пожалуйста, как справиться с этой ситуацией.

http://img269.imageshack.us/img269/2077/88405759.png

Ответы [ 5 ]

3 голосов
/ 22 июля 2010

Прямо сейчас я обертываю каждую кнопку внутри тега формы.Это хороший подход?

Да, это нормально.

Единственная проблема заключается в том, что HTML-код немного коренастый, но эта проблема в значительной степени устраняется сжатием gzip (поскольку будет много дублирующих токенов, которые сжимаемы).

В свою очередь, метод очень прост в реализации, его очень сложно ошибиться, и он не зависит от того, включен ли пользователь JavaScript.

Затем вы можете, не прилагая больших усилий, улучшитьформы с событиями onsubmit для использования JavaScript для отправки данных с использованием Ajax и отмены обычного представления формы.

Более того, в конечном итоге я заменит кнопку на изображение.

Я бы вообще попытался этого избежать.Кнопка - это четкий индикатор того, что на нее можно нажимать, что-то сделаетЕсли вы действительно хотите, вы можете заменить входные данные для ввода изображения.

2 голосов
/ 22 июля 2010

Вы можете ненавязчиво связать функцию с набором элементов, подобным этому:

<script>
var anchors = ​document.getElementsByTagName('a');
for(var i = 0; i < anchors.length; i++) {
    anchors[i].onclick = function() {
        alert(this.id);
        // do ajax call
        return false; 
    }
}​​​
</script>

​<a id="test" href="#">Test</a>
<a id="tes2t" href="#">Test2</a>​
1 голос
/ 22 июля 2010

Вы должны использовать

<input type="button" onclick="AjaxFunction()"> 

, где AjaxFunction () - это функция, которая делает ajax-запрос.Тэг формы и кнопки отправки не нужны для запросов Ajax.

И, кстати, вы можете использовать изображения вместо кнопок.Как то так

<img src="url" alt=""  onclick="AjaxFunction()" />
0 голосов
/ 22 июля 2010

Вы должны создать одну форму и поместить в нее все кнопки отправки. Кнопки должны иметь разные имена.

0 голосов
/ 22 июля 2010

Почему бы не создать одну большую форму, а затем дифференцировать кнопки с их (или другими) идентификаторами?

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