一个页面中有多个相同的form,分别去发起异步请求,后写的$.ajax方法,数据发送不出去,控制台也没有报错?

如题:
一个页面中有多个相同的form,写了多个$.ajax的方法,input的id都是一样的,分别去发起异步请求,后写的$.ajax方法,数据发送不出去,控制台也没有报错?

页面先加载的ajax方法

function Ajax(obj){
    $.ajax({
       type:"post",
        url:"ajax.asp",
        data:"Nickname="+$('#inputUser').val(),
        beforeSend:function(){
            $('#yhm').append(process_request);
        },
        //用户名检测

        success:function(res){
            if(res>"0"){
                $('#inputUser').attr('class','FrameDivWarn');
                showInfo("yhm",msg_un_registered);
                change_submit("true");//禁用提交按钮
            }
           if(res=="0"){
               $('#inputUser').attr('class','FrameDivPass');
               showInfo("yhm",msg_can_rg);
               change_submit("false");//禁用提交按钮
               $("#yhm").attr('class','ts-lg');
           }
        }
    });

};

页面后加载的ajax方法

    //弹窗-异步
function tc_Ajax(obj){
    $.ajax({
       type:"post",
        url:"ajax.asp",
        data:"Nickname="+$('#inputUser').val(),
        beforeSend:function(){
            $('#tc_yhm').append(process_request);
        },
        //用户名检测

        success:function(res){
            if(res>"0"){
                $('#inputUser').attr('class','FrameDivWarn');
                showInfo("tc_yhm",msg_un_registered);
                change_submit("true");//禁用提交按钮
            }
           if(res=="0"){
               $('#inputUser').attr('class','FrameDivPass');
               showInfo("tc_yhm",msg_can_rg);
               change_submit("false");//禁用提交按钮
               $("#tc_yhm").attr('class','ts-lg');
           }
        }
    });

};

情况说明:
一个页面有两个注册,一个是在首页上的异步验证是可以用的。一个是点登录弹窗异步验证用的。
通常这种情况,实际开发中是怎么处理,用什么方式去做更合理。(能不能把多个相同的验证整合到一个ajax方法中?)

后加载的ajax方法,查看HTTP,数据并没有发送到服务器端,是什么情况?

clipboard.png

先写的ajax方法,数据是可以成功发送到服务器端的,并且返回值也对。

clipboard.png

问题:是什么地方引起了冲突了?

阅读 4.9k
3 个回答

每个form中的input id都是一样的?同样的id肯定冲突啊?

ID不能有两个相同的,根据你的描述 你看下是不是出现了两个相同ID的input
还有就是像上面说的,你不觉得写两个功能完全一样的函数是浪费代码行么。

两个ID相同的元素并没有什么影响。
题主描述的问题有错误的地方 "数据没有发送出去?"  这是指ajax请求没有发送数据,根据提问者的贴图明显是发送之前就没有取到数据并不是没有发送数据。
"控制台没有报错?" 是前端控制台没有报错还是后台没有报错。前端还少一个error的回调方法,如果进了error那你这根本就没办法回调。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题