<ng-form name="ctrl.scaleItemForm" ng-submit="ctrl.submit()">
<input type="text"
ng-model="ctrl.scaleItemPF.tareValue"
name="tare-val-si">
<textarea name="sectionLayouts"
ng-trim="false"
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false">
</textarea>
<button type="submit"
class="button-save">
Save
</button>
</ng-form>
我使用的是 Angular 1.5.8,在我看来,我有一个附加了 ng-submit 的 ng-form,以便在输入按键时触发提交功能。我在 ng-form 中有一个文本区域,在文本区域内按 Enter 键时的默认行为是换行符,这是在提交表单的同时发生的,如果焦点位于纹理上,我不想提交表单,相反,我需要一条新线。如果替换为 form 标签而不是 ng-form ,它会按预期工作。这是与 ng-form 相关的错误还是我做错了什么
总结一下问题。 如果焦点位于文本区域,则不想在输入按键时提交表单,否则应提交表单。
最佳答案
if (event && event.target.nodeName === 'TEXTAREA'
&& event.keyCode === 13) {
return undefined;
}
通过将 $event 传递给提交函数并检查当前输入是否为文本区域以及回车键是否触发了返回“未定义”的提交函数来解决此问题,以便继续使用文本区域的默认行为将光标移动到下一个线。
关于javascript - 如果焦点不在文本区域,则提交 ng-form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44403889/