如何在不重新加载HTML的整个页面的情况下提交表单?

时间:2014-08-14 11:37:38

标签: javascript jquery html css

我有一个简单的网站,而不是PHP网站。我正在使用免费主机。我想在“blog_1.xhtml”页面上发布数据。

表格如下:

<form method="post" action="blog_1.xhtml">
    <input type="hidden" name="fnc" value="new"/>    
    <input type="hidden" name="blog_title" value="USERS STATUS"/>
    <input type="text" name="blog_body" value=""/>
    <input type="submit" name="submit" value="Post"/>
</form>

现在我想发布数据而不重新加载整个页面。任何人都可以帮助我吗?

提前致谢:)

3 个答案:

答案 0 :(得分:0)

假设您允许JQUERY:

<script>
    var p=$("form").serialize();
    $.post("/blog_1.xhtml",p,function(data){
        alert('result html:' + data);
        });
</script>

答案 1 :(得分:0)

您可以在此处找到更多信息和示例解决方案:http://api.jquery.com/jquery.post/

您也可以通过以下方式停止表单正常提交:

// Stop form from submitting normally
event.preventDefault();

答案 2 :(得分:0)

POST数据是服务器端处理的数据。 Javascript在客户端。因此,您无法使用JavaScript阅读帖子数据。

你不能以正常的方式使用表格。相反,您希望在使用某种服务器端语言时使用AJAX。 一个示例函数,它将提交数据并提醒页面响应。

<form action="" method="get" onsubmit="return submitForm();">
   <input name="search" type="text">
   <input type="submit" value="Search" >
 </form>
<script>
function submitForm() {
        var http = new XMLHttpRequest();
        http.open("POST", "<<whereverTheFormIsGoing>>", true);
        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        var params = "search=" + <<get search value>>; // probably use document.getElementById(...).value
        http.send(params);
        http.onload = function() {
            alert(http.responseText);
        }
    }
</script>

使用GET方法发送数据,然后在另一页上从URL中检索值。但在这种情况下,用户肯定会被重定向。