【发布时间】:2015-08-05 23:02:21
【问题描述】:
使用jQuery,我们可以模拟提交表单:
<form id="form1" method="post">
<input name="key1" value="value1" />
<input name="key2" value="value2" />
</form>
使用 AJAX 函数调用:
$.post('', { key1: 'value1', key2: 'value2' }, function() {
// do call back
});
如果我们使用jquery.form.js
$('#form1').ajaxSubmit({
success: function() {
// do call back
}
});
好的,现在我的问题来了:
我在标记中没有表单,我想使用“POST”方法提交包含一些动态内容的表单。
我想做一个函数调用来模拟这个过程,可能是这样的:
utils.post('/url', {key1: 'value1', key2: 'value2'});
调用之后,效果和我上面的表格一样,我提交了,自然同步的方式。
有什么好的方法吗?
如果问题不清楚,我可以做一个丑陋的例子来解释我想要什么:
util.post = function(url, fields) {
var $form = $('<form action="'+url+'" method="post"></form>');
var key, val;
for(key in fields) {
if(fields.hasOwnProperty(key)) {
val = fields[key];
$form.append('<input type="hidden" name="'+key+'" value="'+val+'" />');
}
}
$form.submit();
}
上述方法有效,但我认为它不够好。当字段包含特殊字符或其他内容时,可能会导致错误。
【问题讨论】:
-
我不明白这个问题。只需使用该 URL 和数据调用
$.post()。 -
@Barmar 我只想以自然的方式提交表单,而不是使用 xhr。
-
“以自然的方式”是什么意思?
-
@TylerH 效果和我提交普通表单一样,点击提交按钮。
-
那是POST方法。 XMLHttpRequest 也是一样的。
标签: javascript jquery ajax forms