生成并提交表单 - 简单的解决方案

时间:2014-01-20 12:13:20

标签: javascript jquery post submit form-submit

我试着用这个:

<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的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

我还不能写评论,所以我在这里说。我不确定你为什么要这样做,而不是使用正常方式(因为你似乎没有实际发布任何数据)

<a href="#" href='/logout'>
  Sign out
</a>

<form method=POST action=/logout>
  <input type="submit" value='Sign out'/>
</form>

答案 1 :(得分:0)

我不知道为什么你需要在线进行...但是:

<a href="#" onclick="event.preventDefault(), $.post('login',function(req){console.log('success');});">

此函数(是异步请求的回调 - ajax-way ):

function(req){console.log('success',req);}

允许您操纵返回的值req

答案 2 :(得分:0)

如果你真的想要一行,试试这个:

<a href="#" onclick="$('body').append('<form id=\'submitme\' method=\'POST\' action=\'/logout\'></form>');$('#submitme').submit();return false;">
  Sign out
</a>

http://jsfiddle.net/TrueBlueAussie/wWj2M/

我在这些浏览器中成功尝试过这个小提琴:

  • IE
  • 火狐

注意:您的原始文件未生成“完整”HTML,因此我添加了缺少的引号和关闭表单元素。

现在还使用自动关闭表格标签进行了测试,但这是不允许的,所以坚持上面的例子。