Помещает ли # в href «правильный» способ сделать HTTP POST из события onclick? - PullRequest
1 голос
/ 01 марта 2011

Я видел много примеров, в которых # вставляется в атрибут href ссылки, чтобы браузер запускал событие onclick. Я сделал это недавно в приложении Ruby Sinatra. Сейчас я замечаю, что когда я перенаправляю на «/» из моего серверного кода (через ответ 303), URL в браузере все еще имеет # в конце.

Это «правильный» способ сделать сообщение без элемента формы?

<a href='#' onclick="$.post('/test1/69')">add</a> 

Ответы [ 3 ]

6 голосов
/ 01 марта 2011

Правильный подход заключается в использовании прогрессивного улучшения .Вы должны опираться на вещи, которые работают .

. В этом случае лучшим подходом, вероятно, будет начать с <form>, содержащего кнопку отправки.Затем сделайте так, чтобы они выглядели так, как вы хотите (чтобы форма была встроенной, а кнопка - как ссылка).Затем добавьте обработчик submit с ненавязчивым JS , чтобы AJAXify его.

1 голос
/ 01 марта 2011

Я предпочитаю, чтобы событие click вызывало метод, который отправляет сообщение, а также возвращает false, предотвращая распространение события, которое может привести к тому, что ссылка будет фактически выполнена. Когда вы делаете это, не имеет значения, что вы положили в href, потому что он не будет использоваться.

0 голосов
/ 01 марта 2011

Это очень старый способ, который вы, вероятно, можете сделать следующим образом

<a class="test">add</a>

$('.test').click(function() {
 //you can do your logic here and say 
  return false;//it will do both stoppropagation and event.preventDefault

});

http://api.jquery.com/event.preventDefault/

http://api.jquery.com/event.stopPropagation/

Я предпочитаю div, если есть щелчоксобытия по сравнению с hrefs

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