以下代码给我带来了麻烦。它会被触发并在结束时返回正确的警报,但是ajax部分没有做任何事情。没有错误没有什么。
$(document).on('change', '.department_select', function () {
var id = $(this).attr('id');
var num = id.substring(33, 34);
$.ajax({
type: "GET",
url: "<%= update_sub_deparments_path %>",
data: {
department_id: $("#business_case_entries_attributes_0_department_id option:selected").val()
},
dataType: "script",
});
alert(num); // Should alert the correct value (1, 3, 4 etc...)
});
我已经尝试过调试但是我只限于IE8的开发工具包,而控制台是空的。 rails日志也是空的,所以我真的不知道这里出了什么问题。
编辑:脚本应该通过调用更新路径来更新选择字段的选项。 EDIT2:我使用jquery gem jquery-rails.gem(3.1.0)。不安静确定这是哪个jquery verison!
EDIT3: 好的,可以添加更多细节:
//routes
'/:improvement_id/business_case/update_sub_departments(.:format)', :to => 'business_cases#update_sub_departments', :as => 'update_sub_departments'
//update_sub_departments.js.erb
$('#business_case_entries_attributes_0_sub_department_id').html("<%= escape_javascript(options_for_select(@sub_departments.collect { |sub_department| [sub_department.name.titleize, sub_department.id] })) %>");
//business_cases_controller.rb
def update_sub_departments
@sub_departments = SubDepartment.where("department_id = ?", params[:department_id])
respond_to do |format|
format.js.erb
end
结束
任何人都知道该怎么做?
问候。
修改
好的,我简化了我的问题!
如何将咖啡脚本的这一部分更改为普通的javascript?
$.ajax 'update_sub_departments',
type: 'GET'
dataType: 'script'
data: {
department_id: $("#business_case_entries_attributes_0_department_id option:selected").val()
}
答案 0 :(得分:1)
可能需要添加成功部分
$(document).on('change', '.department_select', function () {
var id = $(this).attr('id');
var num = id.substring(33, 34);
$.ajax({
type: "GET",
url: "<%= update_sub_deparments_path %>",
data: {
department_id: $("#business_case_entries_attributes_0_department_id option:selected").val()
},
dataType: "script",
success: function (data) {
//Here
alert(num); // Should alert the correct value (1, 3, 4 etc...)
}
});
});
答案 1 :(得分:0)
必须像这样更改脚本:
$(document).on('change', '.department_select', function () {
var id = $(this).attr('id');
var num = id.substring(33, 34);
$.ajax('update_sub_departments', {
type: "GET",
dataType: "script",
data: {
department_id: $("#business_case_entries_attributes_0_department_id option:selected").val()
}
});
alert(num) // Should alert the correct value (1, 3, 4 etc...)
});