javascript - x-可编辑多个提交按钮 - 不同的 url 或参数

标签 javascript jquery html x-editable

我有一个包含以下代码的页面。 我想要实现的是带有两个提交按钮的 x-editable 表单,它应该调用两个不同的 url 或调用相同的 url 但具有不同的参数。

这是html代码

<table width="100%" height="100%" border="1">
    <tr>
        <td>Name</td>
        <td>First name</td>
        <td>Position</td>
        <td>Company</td>
    </tr>

    <tr>
        <td class="editable" id="required" data-pk='1' data-name="name1">Name 1</td>
        <td class="editable" id="required" data-pk='2' data-name="name2">Firstname 1</td>
        <td class="editable" id="required" data-pk='3' data-name="name3">Position 1</td>
        <td class="editable" id="required" data-pk='4' data-name="name4">Company 1</td>
    </tr>

    <tr>
        <td class="editable" id="required" data-pk='5' data-name="name5">Name 2</td>
        <td class="editable" id="required" data-pk='6' data-name="name6">Firstname 2</td>
        <td class="editable" id="required" data-pk='7' data-name="name7">Position 2</td>
        <td class="editable" id="required" data-pk='8' data-name="name8">Company 2</td>
    </tr>

    <tr>
        <td class="editable" id="required" data-pk='9' data-name="name9">Name 3</td>
        <td class="editable" id="required" data-pk='10' data-name="name10">Firstname 3</td>
        <td class="editable" id="required" data-pk='11' data-name="name11">Position 3</td>
        <td class="editable" id="required" data-pk='12' data-name="name12">Company 3</td>
    </tr>
</table>

这是 JavaScript

$.fn.editable.defaults.mode = 'popup';
$.fn.editable.defaults.title = 'Edit';
$.fn.editable.defaults.type = 'text';
$.fn.editable.defaults.toggle = 'dblclick';

$.fn.editableform.buttons  = 
    '<button type="button" class="btn btn-primary btn-sm editable-submit"><i class="glyphicon glyphicon-ok"></i></button>'+
    '<button type="button" class="btn btn-default btn-sm editable-cancel"><i class="glyphicon glyphicon-remove"></i></button>'+
    '<button type="button" class="btn btn-default btn-sm editable-off"><i class="glyphicon glyphicon-trash"></i></button>';

$('.editable').editable({
    validate: function(value) {
        if($.trim(value) == '') {
            return 'Value is required.';
        }
    },
    url: 'save.php',
    send: 'always'
});

$(document).on('click','.editable-submit',function() {
    $('.editable-open').editable('submit', {
        url: 'save.php',
        params: function (params) {
            var data = {};
            data['value'] = params.value;           
            data['pk'] = params.pk;
            data['originalValue'] = $(this).text();
            data['action'] = 'edit';
            return data;
        },
        success: function(params, config) {
            console.log(params);
        }
    });
});

$(document).on('click','.editable-off',function() {
    $('.editable-open').editable('submit', {
        url: 'save2.php',
        params: function (params) {
            var data = {};
            data['value'] = params.value;           
            data['pk'] = params.pk;
            data['originalValue'] = $(this).text();
            data['action'] = 'exclude';
            return data;
        },
        success: function(params, config) {
            console.log(params);
        }
    });
});

问题是目前两个按钮都将相同的参数提交到相同的 url,即在可编辑火线上定义的参数。

提前谢谢您!

最佳答案

试试这个:

function SubscribeSendButton(url, btnClass){
  $(document).on('click',btnClass,function(){
    $('.editable-open').editable('submit', {
      ajaxOptions: { url: url },
      params: function (params) {
                  var data = {};
                  data['value'] = params.value;           
                  data['pk'] = params.pk;
                  data['originalValue'] = $(this).text();
                  data['action'] = 'exclude';
                  return data;
              },
      success: function(params, config) {
          console.log(params);
      }
    });
  });
};

SubscribeSendButton('save1.php','.editable-off');
SubscribeSendButton('save2.php','.editable-submit');

[更新1]

你应该使用

ajaxOptions: { url: url },

而不仅仅是

 { url: url }

我的工作 fiddle :http://jsfiddle.net/rb1bxefv/
和你的 ajax 模拟:http://jsfiddle.net/qbeuanuf/5/

关于javascript - x-可编辑多个提交按钮 - 不同的 url 或参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32050302/

相关文章:

javascript - 固定列表的固定标题根据宽度不响应

javascript - 用于 Web 应用程序的 Canvas 与 CSS3

javascript - 仅允许使用正则表达式和字符串替换在 HTML/Javascript 中输入 1-12 和 00-59

javascript - 总结nodejs上http返回的最好方法

javascript - PHP的退出;在 JavaScript 中?

javascript - 如何使用 javascript 将文本拆分为相同长度的两列?

javascript - 使用 AngularJs 打印 Div 内容

javascript - jQuery - 不确定如何在使用 .each 时重置数组的最大值

javascript - Django for 循环列表与 jquery 和 javascript

javascript - 根据使用数据切换 ="buttons"输入单选按钮 bootstrap 3 选择显示/隐藏 DIV