radio,
checkbox{
zoom:0.8;
}
<form bindsubmit="submit">
<view class="form-cont">
// 其它表单元素
//按钮指定表单类型,可以触发表单的默认提交行为
<button form-type="submit">submit</button>
</view>
</form>
submit(e) {
console.log(e.detail);
}
| item | desc |
|---|---|
| bindsubmit | 数据提交;默认 |
| bindreset | 表单重置时会触发 reset 事件 |
| item | desc |
|---|---|
| loading | 是否带 loading 图标;然并卵 |
| form-type | 按钮类型;点击触发 form 的submit/reset 事件
submit:单击后,默认行为是提交表单 reset:单击后,默认行为是重置表单 |
| open-type | 微信开放能力
chooseAvatar:获取用户头像 contact:客服 getPhoneNumber:获取用户手机(企业号) getUserInfo:获取用户信息(接口被收回) |
| bindchooseavatar | 获取用户头像回调,返回头像临时地址;配合 open-type 使用 |
| bindcontact | 客服消息回调;配合 open-type 使用 |
// 方案1:使用 important 提权
button{
width: 100%!important;
background-color: var(--themeColor);
color: #fff;
}
// 方案2:使用选择器提权 - 叠加一个选择器作为所有按钮的基类
button.btn{
width: 100%;
background-color: var(--themeColor);
color: #fff;
}
.btn{
padding: 0;
margin: 0;
font-weight: normal;
border-radius: 0;
}
<button open-type="contact" bindcontact='getContact'>getContact</button>
getContact(e){
console.log(e);
}
<button open-type="chooseAvatar" bindchooseavatar='getAvatar'>getAvatar</button>
getAvatar(e){
console.log(e.detail);//http://tmp/bi86Wd1sI41s8ea8eb984c16d03bff787972d38e3ce6.jpg
}
<checkbox value="撸码" id="code" /><label for="code">撸码</label>
<label>
<checkbox color="#3498db" value="撸码" />撸码
</label>
| item | desc |
|---|---|
| value | 输入框初始内容;字符串;必填 |
| type | 输入框类型
text:文本键盘;默认 number:数字键盘 digit:带小数点的数字键盘 idcard:身份证键盘 nickname:昵称键盘 safe-password:密码 |
| password | 是否是密码类型;布尔;默认假 |
| placeholder | 输入框为空时占位符;字符串 |
| placeholder-style | 指定样式;仅支持设置颜色、大小和字重;需预览查看效果 |
| placeholder-class | 指定样式类;仅支持设置颜色、大小和字重;推荐 |
| maxlength | 最大输入长度;数字 |
| focus | 获取焦点;直接拉起键盘便于输入;但是用户欣赏不到你的设计 |
| confirm-type | 设置键盘右下角按钮的文字,仅适用text类型
send:发送 search:搜索 next:下一个 go:前往 done:完成;默认 |
| bindinput | 键盘输入时触发 |
| bindfocus | 输入框聚焦时触发 |
| bindblur | 输入框失去焦点时触发 |
| bindconfirm | 点击完成按钮时触发;不必非要使用普通事件 |
<view class="item">
<text>昵称</text>
<input type="text"
placeholder="您的昵称"
maxlength="8"
value="{{user.uname}}" />
</view>
<view class="item">
<text>昵称</text>
<input type="nickname"
placeholder="您的昵称"
maxlength="8"
value="{{user.uname}}" />
</view>
<view class="item border-btm">
<text>密码</text>
<input type="safe-password"
placeholder="您的密码"
maxlength="8"
value="{{user.upass}}" />
</view>
<view class="item border-btm">
<text>学号</text>
<input type="digit"
placeholder="您的学号"
maxlength="8"
value="{{user.usn}}" />
</view>
<input type="text"
placeholder="请输入您要搜索的商品名称"
model:value='{{keyword}}'
bindconfirm="queryProducts"
confirm-type="search" />
| item | desc |
|---|---|
| bindchange | 选中项发生改变时触发;从事件对象 e.detail 获取当前选中的值( 数组 ) |
| item | desc |
|---|---|
| value | 单选按钮的值 |
| checked | 当前是否选中 |
| color | 单选按钮选中时的颜色 |
| disabled | 是否禁用 |
<radio-group bindchange="getGender" name="ugender">
<radio color="#3498db" value="男" checked />男
<radio color="#3498db" value="女" />女
</radio-group>
getGender(e){
console.log(e.detail.value);
}
<radio-group bindchange="getGender" name="ugender">
<radio color="#3498db" value="男" checked="{{user.ugender=='男'}}" />男
<radio color="#3498db" value="女" checked="{{user.ugender=='女'}}" />女
</radio-group>
| item | desc |
|---|---|
| bindchange | 选中项发生改变时触发;从事件对象 e.detail 获取当前选中的值( 数组 ) |
| item | desc |
|---|---|
| value | 多选按钮的值;数组 |
| checked | 当前是否选中 |
| color | 多选按钮选中时的颜色 |
| disabled | 是否禁用 |
<checkbox-group bindchange="getLike" name='ulike'>
<checkbox color="#3498db" value="撸码" />撸码
<checkbox color="#3498db" value="睡觉" checked/>睡觉
<checkbox color="#3498db" value="电玩" />电玩
<checkbox color="#3498db" value="唱歌" checked/>唱歌
<checkbox color="#3498db" value="跳舞" />跳舞
<checkbox color="#3498db" value="美食" checked/>美食
</checkbox-group>
getLike(e){
console.log(e.detail.value);
}
data:{
carts:[],
isAll: false
}
<view wx:for="{{carts}}" wx:key="item">
<checkbox checked="{{item.selected}}" bind:tap="toggleItemSelection" data-id='{{item.id}}' />
// ...
</view>
<label>
<checkbox checked="{{isAll}}" bind:tap="toggleSelectAll" />全选
</label>
toggleSelectAll() {
const {
carts,
isAll
} = this.data
carts.map(cart => cart.selected = !isAll)
this.setData({
carts,
isAll: !isAll
})
}
toggleItemSelection(e) {
console.log(e.currentTarget);
const {
carts
} = this.data
const id = e.currentTarget.dataset.id
const updatedCarts = carts.map(cart => {
if (cart.id == id) {
cart.selected = !cart.selected
}
return cart
})
const isAll = updatedCarts.every(cart => cart.selected)
this.setData({
carts: updatedCarts,
isAll
})
}
| item | desc |
|---|---|
| value | 输入框初始内容;字符串;必填 |
| placeholder | 输入框为空时占位符;字符串 |
| maxlength | 最大输入长度;数字 |
| focus | 获取焦点 |
| confirm-type | 设置键盘右下角按钮的文字,仅适用text类型
send:发送 search:搜索 next:下一个 go:前往 done:完成;默认 |
| bindfocus | 输入框聚焦时触发 |
| bindinput | 键盘输入时触发;组合使用 |
| bindblur | 输入框失去焦点时触发;组合使用 |
| bindconfirm | 点击完成按钮时触发;组合使用 |
| bindlinechange | 输入框行数变化时调用 |
<view>
<text>简介</text>
<textarea name="udesc" value="{{user.udesc}}" maxlength="30" placeholder="your message"/>
</view>
textarea{
width: 100%;
padding: 20rpx;
}
| item | desc |
|---|---|
| mode | 模式
selector:普通选择器 multiSelector:多列选择器 time:时间选择器;hh:mm date:日期选择器;YYYY-MM-DD region:省市区选择器 |
| range | 数据列表|范围 |
| bindcancel | 取消选择时触发 |
| bindchange | 选择时触发 |
<picker
mode="selector"
value="{{ind}}"
range="{{list}}"
bindchange="pick"
>
{{list[ind]}}
</picker>
pick(e){
console.log(e.detail.value)
}
<picker
mode="time"
value="{{time}}"
bindchange="selTime"
>
{{time]}}
</picker>
selTime(e){
this.setData({
time: e.detail.value
})
}
<picker
mode="date"
value="{{user.ubirth}}"
start="2000-07-01"
end="2026-12-31"
bindchange="selDate"
>
{{user.ubirth}}
</picker>
selDate(e){
this.setData({
date: e.detail.value
})
}
<picker
mode="region"
value="{{region}}"
bindchange="selRegion"
>
{{region}}
</picker>
selRegion(e){
this.setData({
region: e.detail.value
})
}
<picker class='flex'>
<text>cont</text>
<text>cont</text>
<text>cont</text>
</picker>
<picker >
<view class='flex'>
<text>cont</text>
<text>cont</text>
<text>cont</text>
</view>
</picker>
| item | desc |
|---|---|
| min | 最小值 |
| max | 最大值 |
| step | 步长 |
| show-value | 是否显示值;默认不显示 |
| backgroundColor | 背景条的颜色 |
| activeColor | 已选择的颜色 |
| block-size | 滑块的大小,取值范围为 12 - 28 |
| block-color | 滑块颜色 |
| bindchange | 拖动后触发 |
| bindchanging | 拖动过程中触发 |
<slider
activeColor="#3498db"
backgroundColor="#ccc"
block-size="24"
block-color="#3498db"
bindchange="selAge"
min="18"
max="24"
name="uage"
value="{{user.uage}}"
show-value
/>
selAge(e){
console.log(e.detail.value)
}
| item | desc |
|---|---|
| checked | 是否选中 |
| color | 已选择的颜色 |
| type | switch, checkbox;默认是switch |
| bindchange | 选择后触发 |