我想在不离开当前页面的情况下发送表单,所以我使用这个ajaxi方法,而且我在select值的onchange方法中使用了我的提交。但是它不起作用:
<form action="" method="post" id="rati">
<select onchange="this.form.submit()" name="rate" style="width:130px;">
<option value="1">☆</option>
<option value="2">☆☆</option>
<option value="3">☆☆☆</option>
<option value="4">☆☆☆☆</option>
<option value="5">☆☆☆☆☆</option>
</select>
</form>
<script>
$(document).ready(function(e) {
$("#rati").submit(function(e) {
var url = "/saverate.bc?userid=18&id=122";
$.ajax({
type: "POST",
url: url,
data: $("#rati").serialize(),
success: function(data) {
$(".tnxforate").html(data)
}
});
e.preventDefault();
});
});
</script>
答案 0 :(得分:0)
您不应为此附加内联处理程序。当您通过ajax
收到回复时,无需提交表单。
试试这个:
$(document).ready(function(e) {
$("[name='rate']").on('change', function() {
var url = "/saverate.bc?userid=18&id=122";
$.ajax({
type: "POST",
url: url,
data: $("#rati").serialize(),
success: function(data) {
$(".tnxforate").html(data)
}
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form action="" method="post" id="rati">
<select name="rate" style="width:130px;">
<option value="1">☆</option>
<option value="2">☆☆</option>
<option value="3">☆☆☆</option>
<option value="4">☆☆☆☆</option>
<option value="5">☆☆☆☆☆</option>
</select>
</form>
&#13;