ajax方法帖子中的错误

时间:2015-05-07 05:43:21

标签: javascript jquery html5

请帮我弄清楚错误..问题是如果我把名字放在输入中,id =" name"并按回车或按钮提交一切工作,我有警报成功。 PRoblem:我选择其中一个选项type = radio并点击提交或输入我没有消息(提醒成功)......

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>

的JavaScript(jQuery的)

$(function() {
    $(".button").click(function() {
       var name = $("input#name").val();
       if ( ($("input#typeP").prop("checked")) ) {
           var type = $("input#typeP").val();
       } else {
           var type = $("input#typeR").val();
       }
      var str = 'name' + name + '&type' + type;
      $.ajax ({
          type: "POST",
          url: "up.php",
          data: str,
          success: function () {
              alert('success');
          }
     });
});

3 个答案:

答案 0 :(得分:2)

您可以简单地使用此类数据

data: { name: name, type: type },

此外,您使用的是submit类型的按钮,因此当您点击它时,它会自动提交表单。你应该阻止它来做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');
        }
    });
});

答案 1 :(得分:2)

您需要阻止默认表单提交。您可能遇到的是页面正在重新加载

type="button"更改为=

按钮类型不会触发要提交的表单。

另外,如其他人所述,在数据字符串

中修复您的missind $file_url = 'http://www.myremoteserver.com/file.exe'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); readfile($file_url); // do the double-download-dance (dirty but worky)

答案 2 :(得分:0)

作为查询字符串的参数应该作为'param=value'传递,你错过了=来分隔参数和值。

var str = 'name='+name+'&type='+type;

click事件不适用于submit按钮。您可以将其替换为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();
}