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

来源:1-8 使用ajaxSetup()方法设置全局Ajax默认选项

淡水狗

2017-08-09 16:14

为什么把 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()里面就正常了。不是传输同一个参数吗??

写回答 关注

2回答

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

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

    淡水狗

    非常感谢!

    2017-09-04 16:19:57

    共 1 条回复 >

  • 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传的的值,不然无法判断

    淡水狗

    把这段data:{num:$("#txtNumber").val()}, 放在 $.ajaxSetup()全局里面不行。 很好奇他们的data参数不是同一个吗? 要什么就是要分别放

    2017-08-09 17:06:11

    共 1 条回复 >

jQuery基础(五)一Ajax应用与常用插件

如何用jquery实现ajax应用,加入学习,有效提高前端开发速度

69100 学习 · 400 问题

查看课程

相似问题