javascript未捕获类型错误函数ajax



下面可以看到两个函数。第二种效果很好。当选择菜单发生更改时,它会提交数据。

我正试图将类似的逻辑应用到一个领域。当字段中的值更改时,我希望提交数据,如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"
      })
    });

我正在尝试将事件绑定到此字段

    = 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"
  })
});

你能告诉我你是否在使用任何框架吗?这样我就能更好地帮助你。。。

最新更新