Jquery不能在函数内部工作
Jquery get not working from inside a function
所以我有以下功能:
$('#calendar_appointment_technician_id').change(function(){
var technician = $('#calendar_appointment_technician_id').val();
var date = $('#date').val();
var id = $('#calendar_appointment_id').data("id");
var response = $.get("/update_appointment_times?technician="+technician+"&date="+date+"&id="+id);
$('#appointment_times').html(response.responseText);
});
当下拉选项发生变化时,它会发出get请求。这是因为如果您更换您的技术人员,预约时间将会改变。这段代码给出了以下响应:
Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
最重要的是,没有回复文本。现在在chrome开发工具的页面上运行这段代码:
var technician = $('#calendar_appointment_technician_id').val();
var date = $('#date').val();
var id = $('#calendar_appointment_id').data("id");
var response = $.get("/update_appointment_times?technician="+technician+"&date="+date+"&id="+id);
$('#appointment_times').html(response.responseText);
代码给了我一个响应文本,响应看起来像:
Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
为什么这在函数外工作得很好,但从内部get似乎甚至没有正确地触发?
jQuery的.get()
方法是异步的,因此在尝试使用返回数据之前,您需要确保它已经完成。
$.get()
返回一个jQuery.promise
接口,当get请求完成时,我们可以使用该接口检测。
var response = $.get("/update_appointment_times?technician=" + technician + "&date=" + date + "&id=" + id);
response.then(function (response) {
$('#appointment_times').html(response)
});
相关文章:
- JS Promises如何在内部工作
- 为什么更改范围获胜'不能在ng if内部工作,而是通过函数调用AngularJS
- Array.prototype.stice.call()的内部工作
- 承诺内部工作
- .htaccess和.htpasswd的内部工作方式
- 对象引用如何在 javascript 内部工作
- 无法获得控制台.log在 CasperJS 中评估内部工作
- Javascript Array Push 代码如何在内部工作
- jQuery Content Switcher (无法使联系人表单在内部工作)
- GetVariable在方法内部工作
- Br在使用Jquery.html()时无法在P内部工作
- yeoman生成器:复制或模板dos'不能在异步回调内部工作
- 了解$.proxy如何在内部工作
- 为什么$(this)选择器在我的函数内部工作,而在外部工作
- canvas.width=canvas.width如何在内部工作
- Javascript事件驱动的内部工作原理
- setInterval只在if(){}块内部工作
- Jquery不能在函数内部工作
- Jquery平滑滚动只在内部工作
- 使用ng-bind-html时,Ng-click不能在控制器内部工作