问答详情
源自:1-8 使用ajaxSetup()方法设置全局Ajax默认选项

为什么把 data:{num:$("#txtNumber").val()} 写在 $.ajaxSetup()里面时,验证2一直等于0

为什么把 data:{num:$("#txtNumber").val()} 写在 $.ajaxSetup()里面时,验证2一直等于0  。

代码如下

        <script type="text/javascript">  
        $(function(){ 
               $.ajaxSetup({
                   type:"post", 
                   data:{num:$("#txtNumber").val()},//传递数据的参数
                   success:function(data){
                      $("ul").append("<li>你输入的" + $("#txtNumber").val() + data +"</li>")
                   }
               });
               
               $("#btnShow_1").bind("click" , function(){
                   $.ajax({
                       url:"http://www.imooc.com/data/check.php"
                   })
               });
               
               $("#btnShow_2").bind("click" ,function(){
                   $.ajax({
                       url:"http://www.imooc.com/data/check_f.php"
                   })
               });
       
       
        })

而分别放在 $.ajax()里面就正常了。不是传输同一个参数吗??

提问者:淡水狗 2017-08-09 16:14

个回答

  • Frank_Yuan
    2017-09-03 23:55:57
    已采纳

    当你在ajaxSetup中写 data:{num:$("#txtNumber").val()} 实际上是取得当前的输入框的值 ——是一个空的字符串,这种写法相当于写 data:"",   个人认为当触发点击事件的时候,不会再去获取输入框的值,而是采用的全局配置的值。所以说当你用正确的程序去 传入 test 等字符串时,得到的结果应该和你说一样

  • qq_alter自己_0
    2017-08-09 17:03:04

    两个按钮函数部分少了一行代码, 应该是:

    $("#btnShow_1").bind("click" , function(){

                       $.ajax({

    data:{num:$("#txtNumber").val()},        

    url:"http://www.imooc.com/data/check.php"

                       })

                   });

    点击的部分也要写上data传的的值,不然无法判断