常见问题


用什么来开发后端?

X-editable对后端没有限制,你可以用你喜欢的任何服务器语言(例:php,java,asp,c#,.net等等)编写它。常见的逻辑是:

  1. 读取 pk, namevalue 的请求 (默认POST).
  2. 验证值:
  3. 如果 验证失败 - 返回HTTP状态!= 200(例如400 Bad Request)和响应正文中的错误消息。
  4. 如果 验证成功 - 更新数据库中的对象并返回带有空体的HTTP状态= 200。

数据未提交给服务器!为什么?

最可能的原因是你有空pkurl 选项。
如果您想在没有pk的情况下提交数据,请将send选项设置为"always"

如果您没有更改值,也不会提交表单。要管理此行为,请参阅savenochange 选项。


如何更改提交给服务器的内容?

您可以定义 params为函数:

$('#field').editable({
  ...        
  params: function(params) {  // params已经包含`name`,`value`和`pk`
    var data = {};
    data['id'] = params.pk;
    data[params.name] = params.value;
    return data;
  }
}); 
			

如何提交字符串化的JSON?

您可以定义params为函数并在那里进行转换:

//以JSON格式提交      
$('#field').editable({
  ...        
  params: function(params) {
    return JSON.stringify(params);  //注意:对于较旧的浏览器,您可能需要来自json.org的json2.js
  }
});  
			

如何自定义可编辑的元素样式?

覆盖css类,例如

a.editable-click {
  color: green;
  border-color: green;
} 
a.editable-click.editable-disabled {
  color: black;  
  border-bottom: none;
}
a.editable-empty
  color: gray;
  font-style: italic;
}
			

如何创建自己的小部件/复杂表单?

要创建新的输入类型(小部件),只需查看输入目录中源.
源代码即可。 所有输入都来自abstract.js,代码被评论。

我经常被问到如何创建像地址输入:
这样的复杂小部件:一个考虑 x-editable 的主要功能是快速编辑存储在单个数据库字段中的单个值。.
如果您想拥有包含多个字段的全功能表单,只需在隐藏的DIV中呈现它并通过单击显示。你不需要x-editable。