在微信小程序中是不能修改input样式的 甚至修改大小也不能,那么怎么做一个自定义样式的input呢
说一下我做的input的原理 有两张图片 一张是未选中的(input.png)一张是已经选中的 (input_n.png) 更具点击事件bindtap 事件来更换图片的路径实现
首先请求后台接口获取数据
-
wx.request({
-
url: imgsrc + '/wechar/product/getproduct',
-
data: '',
-
header: {},
-
method: 'GET',
-
dataType: 'json',
-
responseType: 'text',
-
success: function (res) {
-
console.log(res);
-
that.setData({
-
product: res.data,
-
});
-
-
},
-
})
-
获得数据格式,
把这些数据存入data里面
在wxml中写循环给图片写入事件cli1 把数组下标存入data-id 用于区分点击了哪个按钮
-
<view class="boxaa" wx:for="{{product}}" >
-
<view class='gongpin'>
-
<image src='{{imgsrc+item.pro_imgs}}'></image>
-
<view class='descript'>{{item.pro_name}}</view>
-
<view class='price'>{{item.pro_price}}</view>
-
</view>
-
<image class='radiocheck' data-proid="{{item.pro_id}}" bindtap='cli1' src='../../imgs/{{item.imgsrc}}'data-name="{{item.pro_name}}" data-id="{{index}}" ></image>
js代码
-
cli1:function(res)
-
{
-
//获取数组的下标 用来确认点击的是那个按钮
-
var id = res.currentTarget.dataset.id;
-
//把选中的商品名字存起来
-
selectedProName = res.currentTarget.dataset.name;
-
//把选中的商品id存起来
-
selectedProId = res.currentTarget.dataset.proid;
-
-
-
//因为是单选按钮首先循环所有的商品把input改为未选中的状态
-
for (var x in product) {
-
product[x].imghttps://www.kesion.com/miniprogramschool/https://www.kesion.com/miniprogramschool/src = "radio.png";
-
}
-
//根据获取过来的数组下标判断input是否是选中状态 如果是切换为未选中状态 如果不是改为选中状态
-
if (product[id].imghttps://www.kesion.com/miniprogramschool/src == "radio.png") {
-
product[id].imghttps://www.kesion.com/miniprogramschool/src = "radio_n.png";
-
} else {
-
product[id].imghttps://www.kesion.com/miniprogramschool/https://www.kesion.com/miniprogramschool/src = "radio.png";
-
}
-
把整个数组存入data中
-
this.setData({
-
product: product,
-
});
-
}