点击评论区让键盘弹起uni-app

正常来说点击uniapp的input框时默认会弹起键盘。具体input设置属性可以看官方文档:https://uniapp.dcloud.io/component/input?id=input

  • 问题:像微信pyq点击评论区或回复评论键盘跟着弹起

  • 思路:点击其他区域能够唤起input的@focus,使input的focus为true即可

  • 代码实现:

父:(记得先引入子组件)

		评论区
		
		

methods中:

    //键盘弹起
	tocommit(x){
	//通过commit传给子子告诉子用户点击评论区要评论
	   this.commit=true;
	//这里的dyid是请求接口的时候用来告诉接口评论或回复的是那一条
		this.dyid=x;
		console.log(this.dyid)
	},
	//评论
	submit(val) {
		console.log(val);
		if(val!=''){
		   let data={dynamicId:this.dyid//动态ID}
           //接口调用
			this.$ajax.post(data).then(res=>{
				if(res.data.success){
					console.log(res);
				//评论完之后再调用一次查看所有评论的接口更新页面评论数据
				    this.getComment();
					}else{
						
					}
				})
				}else{
					this.$util.tips("评论文字不能为空")
				}
			}

子:

	<!-- 评论输入框 -->
	<view class="input-box u-f-ac u-f-jsa">
	   <input type="text" confirm-type="发送" v-model="val" placeholder="说点什么吧" @confirm="send" :focus="commit"/>
	   <view class="view-btn">
		  <button type="primary" @tap="send">发送</button>
	   </view>
   </view>
<script>
	export default{
		data() {
			return {
				val: ''
			}
		},
		props:['commit'],
		methods:{
			send(){
				this.$emit("submit",this.val)
				this.val = '';
			}
		}
	}
</script>

样式部分仅供参考

<style lang="scss" scoped>
	.input-box{
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		height: 108rpx;
		box-sizing: border-box;
		padding: 20rpx;
		border-top: 1px solid rgba(204,204,204,.4);
		background-color: #fff;
		input{
			// border-radius: 30rpx;
			border: 1px solid #EEEEEE;
			background: #EEEEEE;
			padding-left: 20rpx;
			padding-top: 10rpx;
			padding-bottom: 10rpx;
			flex: 1;
			margin-right:20rpx;
		}
		.view-btn{
			width: 80px;
		}
		button{
			background-color:#FFC000;
			font-size: 14px;
		}
	}
</style>

你可能感兴趣的:(小程序)