Mat*_*att 27 javascript ajax iframe jquery
如果我使用jQuery或JavaScript来发布帖子,我该如何让它以iframe而不是当前页面为目标?
jQuery.post(
url,
[data],
[callback],
[type]
)
Run Code Online (Sandbox Code Playgroud)
这是jQuery帖子的格式,似乎没有任何地方像<form>标签中那样指定目标.
有任何想法吗?
Jos*_*osh 30
您可以通过常规表单执行此操作:
<form action="targetpage.php" method="post" target="iframename" id="formid">
<input type="hidden" name="foo" value="bar" />
</form>
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用jQuery提交表单:
$("#formid").submit();
Run Code Online (Sandbox Code Playgroud)
也许您错过了AJAX请求的重点 - 为什么要尝试指定异步请求的"目标"?这没有任何意义,因为AJAX的重点是来自服务器的请求被发送回Javascript,没有页面重新加载或HTML目的地.
如果您想将请求的结果加载到iframe,您可以执行以下操作:
$.post('myurl', function(data) {
$('#myframe').html(data);
}, 'html');
Run Code Online (Sandbox Code Playgroud)
您可以通过动态创建表单并将其附加到正文来解决表单内不允许表单的问题。所以你会做这样的事情:
$().ready(function() {
$('body').append('<form
action="url"
method="post"
target="iframename"
id="myspecialform">
<input type="hidden" name="parameter" value="value" />
</form>');
});
Run Code Online (Sandbox Code Playgroud)
这会在包含页面上其他所有内容的主表单之外创建 iframe 更新表单。然后就按照乔希推荐的那样称呼它:$('#myspecialform').submit();.
这是我在 javascript 中使用纯 html 实现的方法:
var form=$("<form/>").attr({
method: "post",
action: "iframe.php",
target: "list_frame"
});
form.append($("<input/>").attr({name:"field1",value:0}));
form.append($("<input/>").attr({name:"field2",value:1}));
form.append($("<input/>").attr({name:"field3",value:2}));
form.append($("<input/>").attr({name:"field4",value:3}));
form.append($("<input/>").attr({name:"field5",value:4}));
$("body").append(form);
form.submit();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73287 次 |
| 最近记录: |