Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax方法post中的错误_Javascript_Jquery_Html - Fatal编程技术网

Javascript ajax方法post中的错误

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

请帮我找出错误。。问题是,如果我在输入中输入id=“name”,然后按enter键或submit everything work按钮,则警报成功。问题:只要我选择一个选项type=radio并单击submit或enter,我就没有消息(警报成功)

html部分

  <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();
}