6

我是 x-editable 和 jQuery 的新手,所以我在理解如何使用 x-editable 获取单击元素的“id”时遇到问题,希望有人能提供帮助。

我的页面上有几个链接,位于名为#line_item_unit_cost 的 div 中。

 <div id="line_item_unit_cost">
      <a id="1">link</a>
      <a id="2">link</a>
      <a id="3">link</a>
      <a id="4">link</a>
      <a id="5">link</a>
 </div>

当我单击其中一个链接时,我正在触发一个 x 可编辑脚本,该脚本将允许我进行内联编辑。我遇到的问题是我需要传递我正在处理的行项目,以便我可以更新我的数据库。我不知道如何(或者我做错了)访问我点击的链接的“id”。

这是我的脚本:

 $('#line_item_unit_cost a').editable({
            validate: function(value) {
                if($.trim(value) == '') return 'This value is required.';
            },
            type: 'text',
            url: '/post',
            pk: {{ purchaseOrder.id }},
            title: 'Enter Value',
            params: {
                purchaseOrderId : {{ purchaseOrder.id }} ,
                lineId : $(this).attr("id"),
                text: 223
            },
            ajaxOptions: {
                dataType: 'json'
            },
            success: function(response, newValue) {

            }
        });

这一行: lineId : $(this).attr("id") 给了我一个空值。

如果我使用 lineId : $("#line_item_unit_cost a").attr("id") 会不断拉出页面“id”上的第一个实例,而不是正在编辑的那个。

任何人都知道如何获取我使用 x-editable 单击的链接的 ID?

非常感谢!!!

4

2 回答 2

11

决定我会提供解决方案而不是删除帖子,以防其他人需要这个......

 $('#line_item_unit_cost a').editable({
            validate: function(value) {
                if($.trim(value) == '') return 'This value is required.';
            },
            type: 'text',
            url: '/poste',
            pk: {{ purchaseOrder.id }},
            title: 'Enter Freight Value',
            params: function(params) {
                var line = $(this).attr("id");
                var data = {};
                data['purchaseOrderId'] = params.pk;
                data['field'] = params.name;
                data['value'] = params.value;
                data['lineId'] = line;
                return data;
            },
            ajaxOptions: {
                dataType: 'json'
            },
            success: function(response, newValue) {

            }
        });
于 2013-04-16T17:43:35.007 回答
3
$(custom_selector).each(function() {
    var current_element = $(this);
    $(this).editable({
        //common code where you can use current_element
    });    
});
于 2017-10-17T07:47:02.120 回答