3

有一个与给定用户相关的可编辑项目列表,我希望它是非 GET 发起的;即,当单击给定条目的编辑按钮时,我希望启动POST目标编辑表单屏幕。

我如何才能实现将列表中的每个编辑按钮都包装在 中的这一点<form>...</form>

目前我有一个 jQuery location.href 将用户踢到目标编辑屏幕;然而,使用 GET 用户可以通过简单地输入他们选择的 URI 来输入他们喜欢的任何 id。

$('.game-edit').click -> 
  location.href = '/admin/linescore/edit/' + getID($(this))

我可以点击事件 POST a lalocation.href吗?

想法赞赏,谢谢

4

3 回答 3

1
$('a').click(function(){
$('#formID').action = $(this).href
$('#formID').submit();
})
于 2012-11-23T21:39:40.383 回答
1

你有什么理由不能让 jQuery 为你做 POST 吗?鉴于:

<a class="edit" href="...">Click Me</a>

...然后:

$('a.edit').click(function(){
    var postUrl = $(this).attr('href');  // href attribute of clicked link
    $.post(.....); 
});

编辑- 为清楚起见更新

干杯

于 2012-11-23T21:46:12.183 回答
0

好的,这里有很好的答案,但在易于实现方面并不是我真正想要的(是的,只是 ajax,但不想处理将表单内容响应注入 DOM 容器然后处理注入表单的 ajax 事件jq“live”和任何脚本加载问题)。

工作原理很简单:创建一个空的表单块:

<form id="game-list" action="" method="post"></form>

然后,给定一个编辑按钮:

<input id="edit-@x.id" type="button" value="edit" class="game-edit" />

在单击事件上,填充表单的操作并提交:

$('.game-edit').click ->
  $('#game-list').attr('action', '/admin/linescore/edit/' + getID($(this)))
  gamesForm.submit()

这比我认为我需要做的要直接得多,我认为我需要将每个编辑按钮包装在表单包装器中。当然,时区时差 6 小时,我想的不是很清楚,工作的好时机 ;-)

于 2012-11-23T22:47:46.167 回答