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>

リンクの 1 つをクリックすると、インライン編集を可能にする x-editable スクリプトが起動します。私が抱えている問題は、データベースを更新できるように、作業中の項目を渡す必要があることです。クリックしたリンクの「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") は null 値を与えます。

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 に答える