使用页面刷新发布值而不使用<form>?</form>

时间:2011-03-29 22:53:24

标签: jquery html ajax

使用JQuery,我可以轻松地在没有表单且没有页面刷新的情况下执行关键值对的AJAX帖子:

$.ajax({ type: 'POST', url: url,  data: { key: value, key: value, etc...}  });

但有没有办法发布一组非表格数据值 页面刷新,或者我是否需要采用传统的方法来设置一组表单元素,加载他们的值,然后提交表单?

谢谢!

4 个答案:

答案 0 :(得分:5)

你可以采用常规路线,但如果你想避免在页面上放置<form>,请动态构建jQuery 并填充表单。

答案 1 :(得分:2)

您可以通过jQuery创建动态表单,将其附加到正文并提交。缺点:你必须为它生成所有字段。

$('#Setting_type').change(function () {
    $('<form/>', {
        action: "/postReceiver.php",
        method: "post",
        html: "<input name='Setting[key]' value='"+$('#Setting_key').val()+"'>"
            +"<input name='Setting[type]' value='"+$('#Setting_type').val()+"'>"
            +"<input name='typeChange' value='1'>",
        class: "hidden"
    })
        .appendTo('body')
        .submit()
    ;
});

如果您只想通过POST发送数据但仍然在查询中显示params,只需省略html属性并将所有内容放入action

$('#Setting_type').change(function () {
    $('<form/>', {
        action: "/postReceiver.php?type="+encodeURIComponent($('#Setting_name').val())
            +"&Setting[key]="+encodeURIComponent($('#Setting_key').val()),
        method: "post",
        class: "hidden"
    })
        .appendTo('body')
        .submit()
    ;
});
.hidden {
    display: none;
}

答案 2 :(得分:1)

可以在ajax帖子之后刷新页面:

$.ajax({
    type: 'POST',
    url: url,
    data: {
        key1: value1,
        key2: value2,
        etc...
    },
    complete: function () {
        window.location.reload(true);
    }
});

但是用老式的方式做错了什么呢?

<子> window.location.reload @ MDC

答案 3 :(得分:0)

你总能做到

window.location = //wherever you want go 

在ajax success