gpt4 book ai didi

javascript - 如何通过在 Angularjs x-editable 中按回车键来保存表单字段?

转载 作者:行者123 更新时间:2023-11-29 19:19:17 24 4
gpt4 key购买 nike

我正在尝试使用 Angularjs x-editable 保存表单字段。在他们网站上的给定示例中,他们使用保存按钮来保存字段。但是,我试图在不按下保存按钮的情况下实现保存功能。相反,我希望能够在任何可编辑字段(名称、状态、组)上按回车键时进行保存。我知道这可以通过按回车键在传统形式上实现,但在这种情况下似乎不起作用。

这是链接http://vitalets.github.io/angular-xeditable/#editable-form

和 JSFiddle。 http://jsfiddle.net/NfPcH/93/ .

感谢任何帮助,谢谢。

HTML

    <h4>Angular-xeditable Editable row (Bootstrap 3)</h4>
<div ng-app="app" ng-controller="Ctrl">
<table class="table table-bordered table-hover table-condensed">
<tr style="font-weight: bold">
<td style="width:35%">Name</td>
<td style="width:20%">Status</td>
<td style="width:20%">Group</td>
<td style="width:25%">Edit</td>
</tr>
<tr ng-repeat="user in users">
<td>
<!-- editable username (text with validation) -->
<span editable-text="user.name" e-name="name" e-form="rowform" onbeforesave="checkName($data, user.id)" e-required>
{{ user.name || 'empty' }}
</span>
</td>
<td>
<!-- editable status (select-local) -->
<span editable-select="user.status" e-name="status" e-form="rowform" e-ng-options="s.value as s.text for s in statuses">
{{ showStatus(user) }}
</span>
</td>
<td>
<!-- editable group (select-remote) -->
<span editable-select="user.group" e-name="group" onshow="loadGroups()" e-form="rowform" e-ng-options="g.id as g.text for g in groups">
{{ showGroup(user) }}
</span>
</td>
<td style="white-space: nowrap">
<!-- form -->
<form editable-form name="rowform" onbeforesave="saveUser($data, user.id)" ng-show="rowform.$visible" class="form-buttons form-inline" shown="inserted == user">
<button type="submit" ng-disabled="rowform.$waiting" class="btn btn-primary">
save
</button>
<button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default">
cancel
</button>
</form>
<div class="buttons" ng-show="!rowform.$visible">
<button class="btn btn-primary" ng-click="rowform.$show()">edit</button>
<button class="btn btn-danger" ng-click="removeUser($index)">del</button>
</div>
</td>
</tr>
</table>

<button class="btn btn-default" ng-click="addUser()">Add row</button>
</div>

最佳答案

根据我的经验,唯一的方法是捕获 keydown 事件,传递 $event 和 rowform。在 keydown 处理程序中,您可以评估按下的键并保存表单,或者只是将当前值保存到您的持久存储中。

...
<span editable-text="user.name" e-name="name"
e-form="rowform" onbeforesave="checkName($data, user.id)"
e-required
e-ng-keydown="navigate($event,rowform)">
{{ user.name || 'empty' }}
</span>
...

然后,在你的 Controller 中

$scope.navigate = function(event,form) {
if (event.keyCode==13) {
//...Enter Key Processing
} else if (event.keyCode==27) {
//...Escape key processing
} else if (...other key codes)
//...Et cetera
}

您可以使用 rowform.$submit() 提交表单。

希望对您有所帮助。祝你好运

关于javascript - 如何通过在 Angularjs x-editable 中按回车键来保存表单字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com