下面你可以看到两个函数。第二个完美地工作。当选择菜单发生更改时,它会提交数据。
我正在尝试应用类似的逻辑,但这次是应用于一个字段。当字段中的值发生更改时,我想要提交数据,如 js 的第一位所示
尽管逻辑几乎相同,但我收到此错误
Uncaught ReferenceError: $ is not defined
9452:382 (anonymous function)
如果有人能向我阐明这到底是什么以及我如何解决它,我将非常感激。我的假设是它与事物加载的顺序有关,但是由于逻辑与旧逻辑没有什么不同,这肯定不应该成为问题。
:javascript
$('#booking_package_#{package.id}').on("keyup change", function(){
var bookingPackageQuantity = document.getElementById("menu_item_#{package.id}");
$.ajax({
url: "/venues/#{venue.id}/bookings/#{booking.id}/booking_packages/#{@booking_package.id}/add_menu_item?menu_item_id="+bookingPackageQuantity,
type: "GET"
})
});
$('#menu_item_#{package.id}').on("change", function(){
var selects = document.getElementById("menu_item_#{package.id}");
var menuItemId = selects.options[selects.selectedIndex].value
$.ajax({
url: "/venues/#{venue.id}/bookings/#{booking.id}/booking_packages/#{@booking_package.id}/add_menu_item?menu_item_id="+menuItemId,
type: "GET"
})
});
我正在尝试将事件绑定(bind)到此字段
= number_field_tag 'quantity', booking.find_package(package).quantity, id: "booking_package_#{package.id}"
最佳答案
在JS的第一部分,请输入值。可能这可能会破坏 JavaScript,请尝试以下编辑后的代码...
$('#booking_package_#{package.id}').on("keyup change", function(){
var bookingPackageQuantity = document.getElementById("menu_item_#{package.id}");
$.ajax({
url: "/venues/#{venue.id}/bookings/#{booking.id}/booking_packages/#{@booking_package.id}/add_menu_item?menu_item_id="+bookingPackageQuantity.value,
type: "GET"
})
});
如果您为此使用任何框架,能否告诉我?以便我可以更好地帮助您...
关于javascript未捕获类型错误函数ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368808/