如果焦点不在textarea中,则提交ng-form

时间:2017-06-07 05:02:45

标签: javascript html angularjs forms

imageHolder.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                BluEnergyTag b =  new BluEnergyTag(new BluEnergyTag.ImagePickerCallback() {
                    @Override
                    public void onImageSelected(Uri imageUri) {
                        imageHolder.setImageURI(imageUri);
                    }
                });
                b.loadImagePicker();
            }
        });

我正在使用Angular 1.5.8,在我看来,我有一个附加了ng-submit的ng-form,以便在输入按键时触发提交功能。我在ng-form中有一个textarea,当在textarea中按下回车键时默认行为是换行符,这与表单的提交一起发生,如果焦点是纹理,我不想提交表单,相反,我需要一个新的线。如果替换为表单标签而不是ng-form,则按预期工作。这是与ng-form相关的错误还是我做错了

包装问题。 如果焦点在textarea上,则不想在输入按键时提交表格,否则,应提交表格。

2 个答案:

答案 0 :(得分:1)

if (event && event.target.nodeName === 'TEXTAREA'
          && event.keyCode === 13) {
            return undefined;
}

通过将$ event传递给submit函数并检查当前输入是否为textarea并且输入key已触发提交函数返回'undefined'以便继续使用textarea的默认行为将光标移动到next来解决了这个问题线。

答案 1 :(得分:0)

是的,这是带有ng-forms和ng-sumbit的issue

它们不是为了共同努力而建造的。 ng-submit是一个触发表单标记的submit事件的指令。 但是ng-form不是HTML5形式,而是角FormController的实例。 这意味着ng-submit的ng-form不会触发提交,因为ng-form不会创建HTML5表单标记。您可以看到,如果您在应用程序中检查HTML。 因此,要进行整理,您需要使用而不是指令。