Javascript ajax方法post中的错误
请帮我找出错误。。问题是,如果我在输入中输入id=“name”,然后按enter键或submit everything work按钮,则警报成功。问题:只要我选择一个选项type=radio并单击submit或enter,我就没有消息(警报成功) html部分Javascript ajax方法post中的错误,javascript,jquery,html,Javascript,Jquery,Html,请帮我找出错误。。问题是,如果我在输入中输入id=“name”,然后按enter键或submit everything work按钮,则警报成功。问题:只要我选择一个选项type=radio并单击submit或enter,我就没有消息(警报成功) html部分 <form> <input id="name" type="text"> <input value="1" type="radio" id="typeP"> &l
<form>
<input id="name" type="text">
<input value="1" type="radio" id="typeP">
<input value="2" type="radio" id="typeR">
<input type="submit" value="Submit" class="button">
</form>
您可以像这样简单地使用数据
data: { name: name, type: type },
此外,您正在使用submit
type按钮,因此当您单击该按钮时,它将自动提交表单。为了实现ajax,您应该阻止它。使用event.preventDefault()
防止表单提交
$(".button").click(function(e) {
e.preventDafault();
var name = $("input#name").val();
if (($("input#typeP").prop("checked")) == true) {
var type = $("input#typeP").val();
} else {
var type = $("input#typeR").val();
}
var str = 'name' + name + '&type' + type;
$.ajax({
type: "POST",
url: "up.php",
data: {
name: name,
type: type
},
success: function() {
alert('success');
}
});
});
作为querystring的参数应作为
'param=value'
传递。您错过了分隔参数和值的=
var str = 'name='+name+'&type='+type;
单击
事件不适用于提交
按钮。您可以将其替换为submit
handler`
$(".button").closest('form').submit(function() {
});
或者使用event.preventDefault()
if()
可能会减少为
if ($("input#typeP").prop("checked"))
{
var type = $("input#typeP").val();
}
else
{
var type = $("input#typeR").val();
}
您需要阻止默认表单提交。您可能会遇到页面正在重新加载 将
type=“submit”
更改为type=“button”
按钮类型不会触发表单提交
另外,正如其他人所指出的,在数据字符串中修复您的缺失
=
,OP的方法并不那么简单,但非常简单valid@charlietfl我们可以将数据作为查询字符串放在post方法中吗?它缺少=
,尽管-var str='name='+name+'&type='+type代码>谢谢,我没有更改ajax,但只要我更改“.按钮”,它就可以工作了。谢谢。Anoop…不要把它当作查询字符串…它不会附加到url。jQuery对其进行内部管理,将其放入请求var str='name='+name+'&type='+type代码>是的,当我复制它时,这是我的错误,但仍然感谢您的建议。感谢您的帮助,但我使用提交按钮上的第一个答案来防止默认无需防止默认…如果没有默认。这就是转换类型的意义是的,我理解,你的答案是解决问题的方法之一,比有用,谢谢
if ($("input#typeP").prop("checked"))
{
var type = $("input#typeP").val();
}
else
{
var type = $("input#typeR").val();
}