Я попытался использовать это:
<a href="#" onclick="$('<form method=POST action=/logout>').submit();return false;">
Sign out
</a>
Но $('<form method=POST action=/logout>').submit();
не работает в Firefox ang IE.
Есть ли равное простое решение для встроенного использования?
Текущее решение:
<a href="#" onclick="$('#logoutForm').submit();return false;">
Sign out
</a>
<form id="logoutForm" method="post" action="/logout"></form>
Но я все еще хочу понять, почему Firefox не хочет запускать jQuery $('<form method=POST action=/logout>').submit();
, И какой правильный путь для FF?
Если вы действительно хотите это в одной строке, попробуйте следующее:
<a href="#" onclick="$('body').append('<form id=\'submitme\' method=\'POST\' action=\'/logout\'></form>');$('#submitme').submit();return false;">
Sign out
</a>
Я пробовал эту скрипту в этих браузерах:
Примечание: ваш оригинал не генерировал "полный" HTML, поэтому я добавил отсутствующие кавычки и элемент закрывающей формы.
Также тестируется теперь с самозакрывающимся тегом формы, но это запрещено, поэтому придерживайтесь приведенного выше примера.
Я не знаю, зачем вам это делать INLINE... но:
<a href="#" onclick="event.preventDefault(), $.post('login',function(req){console.log('success');});">
эта функция (является обратным вызовом асинхронного запроса - ajax-way):
function(req){console.log('success',req);}
позволяет вам манипулировать возвращаемым значением req
.
console.log("success");
в каждом месте.
location.href = 'http://otherplace.com'
вместо console.log();
Я не могу писать комментарии, поэтому я скажу это здесь. Я не уверен, почему вы хотели бы сделать это так и не использовать обычный способ (поскольку вы, похоже, не публикуете какие-либо данные)
<a href="#" href='/logout'>
Sign out
</a>
или
<form method=POST action=/logout>
<input type="submit" value='Sign out'/>
</form>
<form id=myForm method=POST action=/logout></form>
тогда я могу отправить его$('#myForm').submit();
, Но я хочу однострочное решение.