Nativescript RadDataForm小写字段电子邮件

Nativescript RadDataForm小写字段电子邮件,nativescript,nativescript-vue,Nativescript,Nativescript Vue,现场电子邮件: <TKEntityProperty v-tkDataFormProperty name="email" displayName imageResource="res://user" hintText="Email" index="0"> <TKPropertyEditor v-tkEntityPropertyEditor type="Email"> <TKPropertyEditorStyle v-tkPropertyEditorStyl

现场电子邮件:

<TKEntityProperty v-tkDataFormProperty name="email" displayName imageResource="res://user" hintText="Email" index="0">
  <TKPropertyEditor v-tkEntityPropertyEditor type="Email">
    <TKPropertyEditorStyle v-tkPropertyEditorStyle labelWidth="4" />
  </TKPropertyEditor>
  <TKEmailValidator v-tkEntityPropertyValidators errorMessage="Invalid email"></TKEmailValidator>
</TKEntityProperty>

能否在Nativescript上的RadDataForm中设置autocapitalizationType=“none”?

从今天开始,您可能希望对该问题进行投票并跟进

仍然可以访问本机编辑器对象并关闭自动大写

<template>
    <Page class="page">
        <ActionBar title="Home" class="action-bar" />
        <RadDataForm :source="person" @editorUpdate="onEditorUpdate">
            <TKEntityProperty v-tkDataFormProperty name="email">
                <TKPropertyEditor v-tkEntityPropertyEditor type="Email">
                    <TKPropertyEditorStyle v-tkPropertyEditorStyle />
                </TKPropertyEditor>
            </TKEntityProperty>
        </RadDataForm>
    </Page>
</template>

<script>
    import Vue from "nativescript-vue";
    import RadDataForm from "nativescript-ui-dataform/vue";
    Vue.use(RadDataForm);

    import * as application from "tns-core-modules/application";

    export default {
        data() {
            return {
                person: {
                    email: ""
                }
            };
        },
        methods: {
            onEditorUpdate: function(args) {
                if (args.propertyName === "email") {
                    if (application.ios) {
                        args.editor.editor.autocapitalizationType =
                            UITextAutocapitalizationType.None;
                    }
                }
            }
        }
    };
</script>


我相信你的问题应该只针对iOS,在Android上默认为小写。

我只是想发布一个答案,说明如何更改Android和iOS的键盘,以防对任何人都有帮助。我将NativeScript 7与Angular和TypeScript一起使用(但您也可以使用常规JavaScript),通过访问在
RadDataForm
下使用的iOS和Android的本机元素,我实现了这一功能。我还能够找出TypeScript的类型,很高兴看到所有不同的
InputType
可用*:


从“nativescript ui dataform”导入{DataFormEventData};
从'@nativescript/core/application'导入{ios};
// ... 在有角的组件内
public onEditorUpdate(dataFormEvent:DataFormEventData):无效{
如果(dataFormEvent.propertyName==='descriptionProperty'){
如果(ios){
const iosTextField=dataFormEvent.editor作为UITextField;
iosTextField.autocapitalizationType=UITextAutocapitalizationType.None;/“句子”、“单词”、“所有字符”或“无”
iosTextField.autocorrectionType=UITextAutocorrectionType.Yes;/“Yes”、“No”或“Default”
}否则{
const textEditor=dataFormEvent.editor作为com.telerik.widget.dataform.visualization.editors.DataFormTextEditor;
const androidEditText=textEditor.getEditorView()为android.widget.EditText;
androidEditText.setInputType(android.text.InputType.TYPE_text_VARIATION_NORMAL);//许多不同的选择参见android文档:https://developer.android.com/reference/android/text/InputType
}
}
}

*安卓
InputType
选项,请参阅安卓文档:

你能解释清楚吗每次数字的第一个字母都是大写的,我想要小写的。试试type='url'之类的。它必须工作,如果它不工作,那么下面是详细的答案。