我不确定这是否可行。但我想知道是否有人知道如何使一个超链接传递一些变量和使用POST(像一个表单)而不是GET。
当前回答
正如许多帖子所提到的,这是不可能直接实现的,但一个简单而成功的方法如下: 首先,我们在html页面的主体中放入一个表单,它没有任何提交按钮,而且它的输入是隐藏的。 然后我们使用javascript函数来获取数据并发送表单。这种方法的优点之一是重定向到其他页面,这取决于服务器端代码。 代码如下: 现在在任何你需要一个to be in "POST"方法的地方:
<script type="text/javascript" language="javascript">
function post_link(data){
$('#post_form').find('#form_input').val(data);
$('#post_form').submit();
};
</script>
<form id="post_form" action="anywhere/you/want/" method="POST">
{% csrf_token %}
<input id="form_input" type="hidden" value="" name="form_input">
</form>
<a href="javascript:{}" onclick="javascript:post_link('data');">post link is ready</a>
其他回答
检查这个,它会帮助你
$().redirect('test.php', {'a': 'value1', 'b': 'value2'});
JQuery:通过POST提交隐藏表单的链接。
由于我花了很多时间来理解所有这些答案,而且它们都有一些有趣的细节,下面是最终适合我的组合版本,我更喜欢它的简单性。
我的方法仍然是创建一个隐藏表单,并通过单击页面其他地方的链接提交它。表单将被放置在页面主体的哪个位置并不重要。
表单代码:
<form id="myHiddenFormId" action="myAction.php" method="post" style="display: none">
<input type="hidden" name="myParameterName" value="myParameterValue">
</form>
描述:
display: none隐藏表单。你也可以把它放在一个div或另一个元素中,并在元素上设置display: none。
type="hidden"将创建一个不会显示的字段,但其数据将以任何方式传输到操作(参见W3C)。我知道这是最简单的输入类型。
链接的代码:
<a href="" onclick="$('#myHiddenFormId').submit(); return false;" title="My link title">My link text</a>
描述:
空的href只针对同一页。但在这种情况下,这并不重要,因为返回false将阻止浏览器跟踪该链接。当然,你可能想要改变这种行为。在我的特定情况下,该操作在最后包含重定向。
onclick被用来避免使用href="javascript:…",正如mplungjan所指出的那样。$ (' # myHiddenFormId ')。submit ();用于提交表单(而不是定义函数,因为代码非常小)。
该链接看起来与任何其他<a>元素完全相同。实际上,您可以使用任何其他元素来代替<a>(例如<span>或图像)。
可以使用jQuery函数
function makePostRequest(url, data) {
var jForm = $('<form></form>');
jForm.attr('action', url);
jForm.attr('method', 'post');
for (name in data) {
var jInput = $("<input>");
jInput.attr('name', name);
jInput.attr('value', data[name]);
jForm.append(jInput);
}
jForm.submit();
}
下面是jsFiddle (http://jsfiddle.net/S7zUm/)中的一个例子
你可以使用javascript函数。JQuery有一个很好的内置post函数,如果你决定使用它:
JQuery的帖子
<script language="javascript">
function DoPost(){
$.post("WhateverPage.php", { name: "John", time: "2pm" } ); //Your values here..
}
</script>
<a href="javascript:DoPost()">Click Here</A>
正如许多帖子所提到的,这是不可能直接实现的,但一个简单而成功的方法如下: 首先,我们在html页面的主体中放入一个表单,它没有任何提交按钮,而且它的输入是隐藏的。 然后我们使用javascript函数来获取数据并发送表单。这种方法的优点之一是重定向到其他页面,这取决于服务器端代码。 代码如下: 现在在任何你需要一个to be in "POST"方法的地方:
<script type="text/javascript" language="javascript">
function post_link(data){
$('#post_form').find('#form_input').val(data);
$('#post_form').submit();
};
</script>
<form id="post_form" action="anywhere/you/want/" method="POST">
{% csrf_token %}
<input id="form_input" type="hidden" value="" name="form_input">
</form>
<a href="javascript:{}" onclick="javascript:post_link('data');">post link is ready</a>
推荐文章
- 使伸缩项目正确浮动
- Babel 6改变了它导出默认值的方式
- 如何配置历史记录?
- ES6模板文字可以在运行时被替换(或重用)吗?
- [Vue警告]:找不到元素
- 可以在setInterval()内部调用clearInterval()吗?
- AngularJS控制器的生命周期是什么?
- 无法读取未定义的属性“msie”- jQuery工具
- 形式内联内的形式水平在twitter bootstrap?
- 我的蛋蛋怎么不见了?
- JavaScript中的排列?
- 自定义元素在HTML5中有效吗?
- JavaScript中有睡眠/暂停/等待功能吗?
- 如何触发自动填充在谷歌Chrome?
- 创建圈div比使用图像更容易的方法?