我想用jquery发布一个表单,但我的代码不起作用。提交后,我的页面会刷新,问题出在哪里?等待帮助。
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 :(得分: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
});
看看
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" />
希望这有帮助。
答案 1 :(得分: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>