2011-08-28 149 views
1

我想用jquery发表一个表单,但是我的代码不工作。我提交后,我的页面会刷新,问题在哪里?等待帮助。jquery form post not working

jQuery代码

function submitForm() { 
     var par1 = $('input[@name=my_radio][@checked]').val(); 
     var par2 = $('input[@name=title]').val(); 
     var par3 = $('input[@name=content]').val(); 
      $.ajax({ 
       url: "r8.php", 
       dataType: "html", 
       type: 'POST', 
       data: "submit=" + par1 + "&title=" + par2 + "&content=" + par3, 
       success: function(data){ 
        $("#response").html(data); 
        $('input[@name=title]').html(''); 
        $('input[@name=content]').html(''); 
       } 
      }); 

     return false; 
    } 

的html代码:

<form method="post" id="post_form" name="post_form" onsubmit="return submitForm();"> 
    <label>1: <input type="radio" name="my_radio" value="1" checked /></label> 
    <label>2: <input type="radio" name="my_radio" value="2" /></label> 
    <input id="title" name="title" type="text"> 
    <input id="content" name="content" type="text"> 
    <input type="submit" name="my_submit" id="my_submit" value="submit" /> 
</form> 
<div id="response"></div> 

和r8.php代码

<?php 
if($_POST['submit']!=''){ 

    echo $_POST['title']."|".$_POST['content']."|".$_POST['submit']."|".time(); 

} 
?> 
+0

如果您看到的页面刷新,当你提交处理程序返回假,那么问题通常是提交处理函数中的JavaScript错误。那里我没有看到任何明显的东西。使用调试器运行脚本。你看到任何错误? –

回答

0
在你的Java脚本submitform

()函数,这样收到的值:

var par1 = $('input:radio[name=my_radio]:checked').val() 
var par2 = $('#title').val(); 
var par3 = $('#content').val(); 

您的方法没有获取变量中的值。这就是为什么没有发布。 我试过了,它的工作原理。

编辑:

什么你需要做的是使用的AJAX方法之一来发表您的形式,并注入到输出的成功回调中的元素。例如:

$("#my_submit").click(function() { 
    $.post($("#post_form").attr("action"), $("#post_form").serialize(), function(html) { 
     $("div.post_form").html(html); 
    }); 
    return false; // prevent normal submit 
}); 

采取表单action属性一看

http://api.jquery.com/jQuery.post/http://api.jquery.com/jQuery.ajax/

给予r8.php。即

<form method="post" id="post_form" name="post_form" action="r8.php" /> 

希望这会有所帮助。

+0

谢谢,但仍然刷新 – cj333

+0

查看更新的答案。 – AlphaMale

0

出现了一个问题,你选择..从选择 删除“@”,它会工作..

<script language="javascript"> 
function submitForm() { 

      var par1 = $('input[name=my_radio][checked]').val(); 
     var par2 = $("input[name=title]").val(); 
     var par3 = $("input[name=content]").val(); 

     $.ajax({ 
       url: "r8.php", 
       dataType: "html", 
       type: 'POST', 
       data: "submit=" + par1 + "&title=" + par2 + "&content=" + par3, 
       success: function(data){ 
        $("#response").html(data); 
        $("input[name=title]").html(""); 
        $("input[name=content]").html(""); 
              } 
        }); 

        return false; 
       } 

    </script>