Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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函数没有被调用,并且在调用函数时没有打印警报?_Javascript_Jquery_Ajax_Function_Alert - Fatal编程技术网

Javascript 为什么AJAX函数没有被调用,并且在调用函数时没有打印警报?

Javascript 为什么AJAX函数没有被调用,并且在调用函数时没有打印警报?,javascript,jquery,ajax,function,alert,Javascript,Jquery,Ajax,Function,Alert,我想在用户单击select控件或select控件从键盘获得焦点后调用ajax函数 HTML代码如下所示: <select id="scanner" name="scanner" class="form-control"></select> 在您的代码中,我没有看到html选择框的任何选项 并且,您已在“选择框”上注册了一个更改事件,该事件仅在选择“选择框”中的选项时发生 在选择框中添加几个选项,并尝试选择将触发ajax调用的选项 在你的代码中我没有看到html选择框的任

我想在用户单击select控件或select控件从键盘获得焦点后调用ajax函数

HTML代码如下所示:

<select id="scanner" name="scanner" class="form-control"></select>
在您的代码中,我没有看到html选择框的任何选项

并且,您已在“选择框”上注册了一个更改事件,该事件仅在选择“选择框”中的选项时发生

在选择框中添加几个选项,并尝试选择将触发ajax调用的选项

在你的代码中我没有看到html选择框的任何选项

并且,您已在“选择框”上注册了一个更改事件,该事件仅在选择“选择框”中的选项时发生

在选择框中添加几个选项,并尝试选择将触发ajax调用的选项


请参见

我认为您应该这样做:

 $("#scanner").bind("focus", function() { 
    alert("Hello");
    var mod_url = $('#mod_url').val(); 
    $.ajax({
      url : mod_url,
      cache: false,
      dataType: "html",
      type: "GET",
      data: {
        'request_type':'ajax', 
        'op':'get_all_stores'
      },
      success: function(result, success) { 
          alert(result);
          $('#scanner').html(result);
      },
      error: function() {
        alert("Error is occured");
      }
    });
  });
关于bind的一个建议是,如果您使用的是jQueryVersion1.7+,则可以使用.on方法

在我看来,您希望通过ajax调用生成扫描仪元素选项,因此更改如下:

删除async:false,因为ajax必须是异步的。 将数据类型更改为html,因为您似乎将从那里返回选项作为$'scanner'.htmlresult;建议。
我认为你应该这样做:

 $("#scanner").bind("focus", function() { 
    alert("Hello");
    var mod_url = $('#mod_url').val(); 
    $.ajax({
      url : mod_url,
      cache: false,
      dataType: "html",
      type: "GET",
      data: {
        'request_type':'ajax', 
        'op':'get_all_stores'
      },
      success: function(result, success) { 
          alert(result);
          $('#scanner').html(result);
      },
      error: function() {
        alert("Error is occured");
      }
    });
  });
关于bind的一个建议是,如果您使用的是jQueryVersion1.7+,则可以使用.on方法

在我看来,您希望通过ajax调用生成扫描仪元素选项,因此更改如下:

删除async:false,因为ajax必须是异步的。 将数据类型更改为html,因为您似乎将从那里返回选项作为$'scanner'.htmlresult;建议。
我想这就是你想要的

  $("#scanner").bind('focus',function () {
            Myfunction(); // call what you want to call on focus 
        }).change(function() {
              Myfunction()      // call what you want to call on Change                    
      });



function Myfunction()
{
    var mod_url = "http://google.com"; 

    $.ajax({
      url : mod_url,
      cache: false,
      dataType: "json",
      type: "GET",
      async: false,
      data: {
        'request_type':'ajax', 
        'op':'get_all_stores'
      },
      success: function(result, success) { alert(result);
        $('#scanner').html(result);
      },
      error: function() {
        alert("Error is occured");
      }
    });
}

这里是js小提琴

我想这就是你想要的

  $("#scanner").bind('focus',function () {
            Myfunction(); // call what you want to call on focus 
        }).change(function() {
              Myfunction()      // call what you want to call on Change                    
      });



function Myfunction()
{
    var mod_url = "http://google.com"; 

    $.ajax({
      url : mod_url,
      cache: false,
      dataType: "json",
      type: "GET",
      async: false,
      data: {
        'request_type':'ajax', 
        'op':'get_all_stores'
      },
      success: function(result, success) { alert(result);
        $('#scanner').html(result);
      },
      error: function() {
        alert("Error is occured");
      }
    });
}

此处js FIDLE

在firebug或浏览器的开发者控制台中检查,是否有任何错误?@Transformer:也尝试了成功功能中的警报。focus尝试使用此功能,而不是更改,或者像focus更改一样绑定两者。select不会从某些浏览器(如firefox)中的按键事件触发更改事件。仅使用keybord?仅当您更改或选择选项时,更改事件才会触发。请尝试在firebug或浏览器的开发者控制台中使用click或focus eventcheck,有错误吗?@Transformer:也尝试了成功函数中的警报,但仍然没有。焦点尝试使用此选项,而不是更改,或者像焦点更改一样绑定两者。select不会从某些浏览器(如firefox)中的按键事件触发更改事件。仅使用keybord?仅当您更改或选择选项时,更改事件才会触发。请尝试单击或聚焦事件