我使用best_in_place_if进行内联编辑。在这里,我想通过使用best_in_place的ajax成功事件来捕获当前元素的id。
下面是我尝试添加id属性的代码段。但是当我检查html时,id属性的值是bes_in_place生成的默认值。根据他们的文档,它提到可以通过提供我们自己的值来更改默认值。
id属性的默认值显示为id =" best_in_place_trip_32_is_active"我想要的只是id = 32
best_in_place_if(current_user.admin,trip,:is_active, :type => :checkbox, :classes => 'trip_disable', :id => trip.id)
请让我知道我错过了什么。
答案 0 :(得分:1)
首先,您不应该尝试为元素使用仅限数字的ID属性,violates the HTML specs。
然后,要在成功回调中访问当前已修改记录的id
,您可以将记录id
添加到数据属性。这样的事情应该有效:
# adding the record ID to the data attribute
best_in_place_if(current_user.admin, trip, :is_active, :as => :checkbox, :class => 'trip_disable', :data => { :id => trip.id })
# accessing the record ID in the success calback
$('.best_in_place.trip_disable').bind("ajax:success",
function(){
alert('Record ID is '+$(this).data('id'));
});
有关详细信息,请参阅Best in place docs。