【发布时间】:2014-11-26 21:08:34
【问题描述】:
我试图了解 X-editable 如何存储值。
-
例如我有以下代码:
HTML:
<a class="editable" data-type="select" data-value="1">value-1</a>JavaScript:
$.fn.editable.defaults.mode = 'inline'; $('.editable').html('value-2'); $('.editable').data('value',2); $('.editable').editable({ source: function () { return [ { value: 1, text: "value-1" }, { value: 2, text: "value-2" }, { value: 3, text: "value-3" } ]; } });如您所见,它工作得很好。第一步,我声明下拉列表的值等于“value-1”,然后在 JavaScript 中将其更改为“value-2”。结果你可以在页面上的“value-2”和“value-2”点击下拉后选择相同的值。
-
在这一步,我将稍微修改一下 JavaScript,如下所示:
//$('.editable').html('value-2'); $('.editable').data('value',2);结果再次令人期待。您会在页面上看到“value-1”,但打开下拉菜单时会选择“value-2”。
-
现在让我们以相反的方式更改 JavaScript 代码
$('.editable').html('value-2'); //$('.editable').data('value',2);经过这样的修改,页面上的值将等于“value-2”,但开始编辑时下拉列表中选择的值将是“value-1”。所以也是相当合乎逻辑的行为。
问题:
我没想到的是,通过单击可编辑控件的“确定”按钮保存更改不会更改 data-value 属性,它只会更改显示的文本。例如,如果我们将值更新为"value-3" 并单击“确定”,data-value 属性仍将等于 1。那么插件再次打开后如何在下拉列表中选择正确的值?
UPD:
从代码中改变editable值最合适的方法是使用
$('.editable').editable('setValue', 'value-1');
【问题讨论】:
标签: javascript jquery html x-editable