its*_*dok 34 javascript jquery jquery-plugins
这种情况之一我觉得我错过了一个关键的关键词来找到谷歌的答案......
我有一包参数,我想让浏览器导航到带参数的GET URL.作为一个jQuery用户,我知道如果我想发一个ajax请求,我会这样做:
$.getJSON(url, params, fn_handle_result);
Run Code Online (Sandbox Code Playgroud)
但有时我不想使用ajax.我只想提交参数并返回页面.
现在,我知道我可以循环参数并手动构建GET URL.对于POST,我可以动态创建表单,用字段填充并提交.但是我确定有人已经编写了一个插件来执行此操作.或许我错过了一些东西,你可以用核心jQuery来做.
那么,有人知道这样的插件吗?
编辑:基本上,我想要的是写:
$.goTo(url, params);
Run Code Online (Sandbox Code Playgroud)
并且可选
$.goTo(url, params, "POST");
Run Code Online (Sandbox Code Playgroud)
Dus*_*tin 50
jQuery插件似乎工作得很好,直到我在IE8上尝试它.我不得不做一些小修改才能让它在IE上运行:
(function($) {
$.extend({
getGo: function(url, params) {
document.location = url + '?' + $.param(params);
},
postGo: function(url, params) {
var $form = $("<form>")
.attr("method", "post")
.attr("action", url);
$.each(params, function(name, value) {
$("<input type='hidden'>")
.attr("name", name)
.attr("value", value)
.appendTo($form);
});
$form.appendTo("body");
$form.submit();
}
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
its*_*dok 20
这是我最终做的,使用redsquare的提示:
(function($) {
$.extend({
doGet: function(url, params) {
document.location = url + '?' + $.param(params);
},
doPost: function(url, params) {
var $form = $("<form method='POST'>").attr("action", url);
$.each(params, function(name, value) {
$("<input type='hidden'>")
.attr("name", name)
.attr("value", value)
.appendTo($form);
});
$form.appendTo("body");
$form.submit();
}
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
用法:
$.doPost("/mail/send.php", {
subject: "test email",
body: "This is a test email sent with $.doPost"
});
Run Code Online (Sandbox Code Playgroud)
任何反馈都会受到欢迎.
更新:请参阅dustin的答案,了解适用于IE8的版本
red*_*are 12
从问题中不清楚你是否想要在查询字符串上传递一组随机值,或者它是否为表单值.
对于表单值,只需使用.serialize函数来构造查询字符串.
例如
var qString = $('#formid').serialize();
document.location = 'someUrl' + '?' + serializedForm
Run Code Online (Sandbox Code Playgroud)
如果您有一组随机值,则可以构造一个对象并使用.param实用程序方法.
例如
var params = { width:1680, height:1050 };
var str = jQuery.param( params );
console.log( str )
// prints width=1680&height=1050
// document.location = 'someUrl' + '?' + str
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20164 次 |
最近记录: |