# input开发指导 input是交互式组件,用于接收用户数据。其类型可设置为日期、多选框和按钮等。具体用法请参考[input API](../reference/arkui-js/js-components-basic-input.md)。 ## 创建input组件 在pages/index目录下的hml文件中创建一个input组件。 ```html
Please enter the content
``` ```css /* xxx.css */ .container { width: 100%; height: 100%; flex-direction: column; justify-content: center; align-items: center; background-color: #F1F3F5; } ``` ![zh-cn_image_0000001165344988](figures/zh-cn_image_0000001165344988.png) ## 设置input类型 通过设置type属性来定义input类型,如将input设置为button、date等。 ```html
this is a dialog
``` ```css /* xxx.css */ .container { width: 100%; height: 100%; align-items: center; flex-direction: column; justify-content: center; background-color: #F1F3F5 ; } .div-button { flex-direction: column; align-items: center; } .dialogClass{ width:80%; height: 200px; } .button { margin-top: 30px; width: 50%; } .content{ width: 90%; height: 150px; align-items: center; justify-content: center; } .flex { width: 80%; margin-bottom:40px; } ``` ```js // xxx.js export default { btnclick(){ this.$element('dialogId').show() }, } ``` ![zh-cn_image_0000001163375178](figures/zh-cn_image_0000001163375178.gif) > **说明:** > > 仅当input类型为checkbox和radio时,当前组件是否选中的属性checked才生效,默认值为false。 ## 事件绑定 向input组件添加search和translate事件。 ```html
Enter text and then touch and hold what you've entered
``` ```css /* xxx.css */ .content { width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; background-color: #F1F3F5; } .input { margin-top: 50px; width: 60%; placeholder-color: gray; } text{ width:100%; font-size:25px; text-align:center; } ``` ```js // xxx.js import promptAction from '@ohos.promptAction' export default { search(e){ promptAction.showToast({ message: e.value, duration: 3000, }); }, translate(e){ promptAction.showToast({ message: e.value, duration: 3000, }); } } ``` ![zh-cn_image_0000001189088264](figures/zh-cn_image_0000001189088264.gif) ## 设置输入提示 通过对input组件添加showError方法来提示输入的错误原因。 ```html
``` ```css /* xxx.css */ .content { width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; background-color: #F1F3F5; } .input { width: 80%; placeholder-color: gray; } .button { width: 30%; margin-top: 50px; } ``` ```js // xxx.js import promptAction from '@ohos.promptAction' export default { data:{ value:'', }, change(e){ this.value = e.value; promptAction.showToast({ message: "value: " + this.value, duration: 3000, }); }, buttonClick(e){ if(this.value.length > 6){ this.$element("input").showError({ error: 'Up to 6 characters are allowed.' }); }else if(this.value.length == 0){ this.$element("input").showError({ error:this.value + 'This field cannot be left empty.' }); }else{ promptAction.showToast({ message: "success " }); } }, } ``` ![zh-cn_image_0000001189248178](figures/zh-cn_image_0000001189248178.gif) > **说明:** > 该方法在input类型为text、email、date、time、number和password时生效。 ## 场景示例 根据场景选择不同类型的input输入框,完成信息录入。 ```html
``` ```css /* xxx.css */ .container { flex-direction: column; background-color: #F1F3F5; } .label-item { align-items: center; border-bottom-width: 1px;border-color: #dddddd; } .lab { width: 400px;} label { padding: 30px; font-size: 30px; width: 320px; font-family: serif; color: #9370d8; font-weight: bold; } .flex { flex: 1; } .textareaPadding { padding-left: 100px; } ``` ```js // xxx.js import promptAction from '@ohos.promptAction'; export default { data: { }, onInit() { }, btnclick(e) { promptAction.showToast({ message:'Saved successfully!' }) } } ``` ![zh-cn_image_0000001188771358](figures/zh-cn_image_0000001188771358.gif) ## 相关实例 针对input开发,有以下相关实例可供参考: - [input、label(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/JSUI/InputApplication)