Javascript 为什么AJAX函数没有被调用,并且在调用函数时没有打印警报?
我想在用户单击select控件或select控件从键盘获得焦点后调用ajax函数 HTML代码如下所示: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 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?仅当您更改或选择选项时,更改事件才会触发。请尝试单击或聚焦事件