Bra*_*rad 31 jquery http-post jquery-plugins
在jQuery中有一个简单的非AJAX POST方法吗?
我正在寻找一个与页面上的表单相当的东西,只有通过JavaScript设置的隐藏字段,然后获得POST,导致浏览器加载页面集action.只是一个正常的POST,但通过jQuery设置值.
我想我可以继续实现我当前的方法,但我很好奇jQuery是否提供了一种快速方法.在后台,我想它会动态创建包含所有隐藏值的表单并提交它.
Dar*_*rov 38
内置任何东西都没有.您可以创建一个动态表单,用隐藏字段填充它,将其添加到DOM并触发提交.这是一个例子:
function submit(action, method, values) {
var form = $('<form/>', {
action: action,
method: method
});
$.each(values, function() {
form.append($('<input/>', {
type: 'hidden',
name: this.name,
value: this.value
}));
});
form.appendTo('body').submit();
}
submit('http://www.example.com', 'POST', [
{ name: 'key1', value: 'value1' },
{ name: 'key2', value: 'value2' },
{ name: 'key3', value: 'value3' },
]);
Run Code Online (Sandbox Code Playgroud)
Ans*_*nen 37
整理达林的优秀解决方案.
function myFunction(action, method, input) {
'use strict';
var form;
form = $('<form />', {
action: action,
method: method,
style: 'display: none;'
});
if (typeof input !== 'undefined' && input !== null) {
$.each(input, function (name, value) {
$('<input />', {
type: 'hidden',
name: name,
value: value
}).appendTo(form);
});
}
form.appendTo('body').submit();
}
Run Code Online (Sandbox Code Playgroud)
这是JSLint兼容的,并确保尽管可能有css定义,但在body标签的末尾没有显示任何表单.用法也稍微简单明了,例如:
myFunction('/path/to/my/site/', 'post', {
id: 1,
quote: 'Quidquid Latine dictum sit altum videtur'
});
Run Code Online (Sandbox Code Playgroud)
小智 7
我发现这些答案非常有用,并修改了Anssi Herranen的解决方案,也正确地将数组发布到服务器端php:
function jqueryPost(action, method, input) {
"use strict";
var form;
form = $('<form />', {
action: action,
method: method,
style: 'display: none;'
});
if (typeof input !== 'undefined') {
$.each(input, function (name, value) {
if( typeof value === 'object' ) {
$.each(value, function(objName, objValue) {
$('<input />', {
type: 'hidden',
name: name + '[]',
value: objValue
}).appendTo(form);
} );
}
else {
$('<input />', {
type: 'hidden',
name: name,
value: value
}).appendTo(form);
}
});
}
form.appendTo('body').submit();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19620 次 |
| 最近记录: |