更改Editable Form里的快捷键(更新v 7.0)
-
经常听到用户在抱怨OE的回车不好用。原来国产的很多软件里,总是把回车当成TAB用。唉。迎合用户,改。
打开:
\addons\web\static\src\js\view_list_editable.js
找到(大约line169):<br />on_row_keyup: function (e) {<br /> var self = this;<br />......<br />
动手。
首先要支持这个:用户在一个输入框回车,跳转到本行的下一个输入框。要考虑输入框的readonly,invisible...
思路:先数本行总共有多少个可以输入的input, 然后向后select一个。<br /><br />on_row_keyup: function (e) {<br /> var self = this;<br /> <br /> switch (e.which) {<br /> case KEY_RETURN:<br /> inputs = self.edition_form.$element.find('input:visible:not(disabled):not([readonly])')<br /> idx = $.inArray(e.target, inputs);<br /> if(idx < inputs.length-1){<br /> $('#'+inputs[idx+1].id).select();<br /> return;<br /> }<br /> <br /> this.save_row().then(function (result) {<br /> if (result.created) {<br /> self.new_record();<br /> return;<br /> }<br /><br />......<br /><br />
当然,如果到了本行最后一个输入框了,那就执行系统的快捷键,保存本行,跳到下一行吧。
打完收工。
以下是为7.0做的改变。
为了维持用户体验,我还是需要把v7版本的回车快捷键修改一下,使之和v 6.1中一致:
还是那个文件,line 489,
(BTW:这个版本支持很多的快捷键,确实提高了用户体验。)
我们主要修改keyup_ENTER方法:<br /><br />keyup_ENTER: function (e) {<br /> //return this._next();<br /> var form = this.editor.form;<br /> //找最后一个field<br /> var last_field = _(form.fields_order).chain()<br /> .map(function (name) { return form.fields[name]; })<br /> .filter(function (field) { return field.$el.is(':visible'); })<br /> .last()<br /> .value();<br /> // tabbed from last field in form<br /> 判断是否换行<br /> if (last_field && last_field.$el.has(e.target).length) {<br /> e.preventDefault();<br /> return this._next();<br /> }else{<br /> //如果不需要换行,转向下一个输入框。<br /> var source_field = $(e.target).closest('[data-fieldname]')<br /> .attr('data-fieldname');<br /><br /> var fields_order = form.fields_order;<br /> var field_index = _(fields_order).indexOf(source_field);<br /><br /> var fields = form.fields;<br /> var field;<br /> do {<br /> if (++field_index >= fields_order.length) { return $.when(); }<br /><br /> field = fields[fields_order[field_index]];<br /> } while (!field.$el.is(':visible'));<br /><br /> field.focus();<br /> }<br /> return $.when();<br /> <br /> },<br /> -
这个牛B
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login