input 轉(zhuǎn)載dcloud.io

input(輸入表單)

基本說(shuō)明

mui輸入表單包括單行輸入框input和多行輸入框textarea,當(dāng)我們使用form表單時(shí),想要得到類似列表的輸入框組,
給form添加.mui-input-group類,每個(gè)輸入框添加.mui-input-row。如果不添加label標(biāo)簽,輸入框
默認(rèn)寬度為100%;添加label標(biāo)簽后輸入框?qū)挾饶J(rèn)為65%。

表單輸入框
<form class="mui-input-group">
    <div class="mui-input-row">
        <label>Input</label>
        <input type="text" placeholder="普通輸入框">
    </div>
    <div class="mui-input-row">
        <label>Input</label>
        <input type="text" class="mui-input-clear" placeholder="帶清除按鈕的輸入框">
    </div>
    <div class="mui-input-row mui-plus-visible">
        <label>Input</label>
        <input type="text" class="mui-input-speech mui-input-clear" placeholder="語(yǔ)音輸入">
    </div>
    <div class="mui-button-row">
        <button type="button" class="mui-btn mui-btn-primary" onclick="return false;">確認(rèn)</button>  
        <button type="button" class="mui-btn mui-btn-danger" onclick="return false;">取消</button>
    </div>
</form>

注:始終為button按鈕添加type屬性,若button按鈕沒(méi)有type屬性,瀏覽器默認(rèn)按照type=submit邏輯處理,
這樣若將沒(méi)有type的button放在form表單中,點(diǎn)擊按鈕就會(huì)執(zhí)行form表單提交,頁(yè)面就會(huì)刷新,用戶體驗(yàn)極差。

其他常用輸入框
<h5>默認(rèn)搜索框:</h5>
<div class="mui-input-row mui-search">
    <input id="search" type="search" class="mui-input-clear" placeholder="">
</div>
<h5 class="mui-plus-visible">語(yǔ)音輸入搜索框:</h5>
<div class="mui-input-row mui-search mui-plus-visible">
    <input id="speech" type="search" class="mui-input-speech mui-input-clear" placeholder="帶語(yǔ)音輸入的搜索框">
</div>
<h5>密碼框:</h5>
<div class="mui-input-row mui-password">
    <input type="password" class="mui-input-password">
</div>

輸入增強(qiáng)

mui目前提供的輸入增強(qiáng)包括:快速刪除和語(yǔ)音輸入兩項(xiàng)功能。要?jiǎng)h除輸入框中的內(nèi)容,使用輸入法鍵盤上的刪除按鍵,
只能逐個(gè)刪除字符,mui提供了快速刪除能力,只需要在對(duì)應(yīng)input控件上添加.mui-input-clear類,當(dāng)input
控件中有內(nèi)容時(shí),右側(cè)會(huì)有一個(gè)刪除圖標(biāo),點(diǎn)擊會(huì)清空當(dāng)前input的內(nèi)容;

另外,為了方便快速輸入,mui集成了HTML5+的語(yǔ)音輸入,只需要在對(duì)應(yīng)input控件上添加.mui-input-speech
類,就會(huì)在該控件右側(cè)顯示一個(gè)語(yǔ)音輸入的圖標(biāo),點(diǎn)擊會(huì)啟用科大訊飛語(yǔ)音輸入界面,但是語(yǔ)音輸入只能在5+環(huán)境
下使用,為了在web環(huán)境下不出錯(cuò),我們可以使用.mui-plus-visible將只能在5+環(huán)境下正常使用的內(nèi)容在web環(huán)境
下隱藏,反過(guò)來(lái)我們可以使用 .mui-plus-hidden將在web中正常顯示的內(nèi)容在5+環(huán)境下隱藏。

<div class="mui-input-row mui-plus-visible">
    <label>mui-plus-visible</label>
    <input type="text" class="mui-input-speech mui-input-clear" placeholder="我在web環(huán)境下隱藏5+環(huán)境下顯示">
</div>
<div class="mui-input-row mui-plus-hidden">
    <label>mui-plus-hidden</label>
    <input type="text" class="mui-input-clear" placeholder="我在web環(huán)境下顯示5+環(huán)境下隱藏">
</div>

監(jiān)聽(tīng)事件

輸入框的變化監(jiān)聽(tīng)事件

通過(guò)監(jiān)聽(tīng)輸入框input事件,可以監(jiān)聽(tīng)到輸入框變化。

var search = document.getElementById('search');
search.addEventListener('input',function () {
    console.log(search.value);
})
軟鍵盤右下角按鍵監(jiān)聽(tīng)事件

為了監(jiān)聽(tīng)軟鍵盤右下角按鍵事件,我們常采用下面的方法:

html:
<div class="mui-input-row mui-search">
    <input id="search" type="search" class="mui-input-clear" placeholder="">
</div>

javascript:
document.getElementById('search').addEventListener('keydown',function (e) {
    console.log(e.keyCode);
    if(e.keyCode == 13){
        console.log("search");
    }
})

但是這種方法在部分手機(jī)軟鍵盤兼容性不好,所以不妨采用綁定form表單提交事件:

html:
<form action="">
    <input type="text" name="username">
    <button type="submit" class="mui-btn mui-btn-block">保 存</button>
</form>

javascript:
document.querySelector('form').addEventListener('submit', function(e){
    e.preventDefault(); // 阻止默認(rèn)事件
    console.log("go");
});

注:通過(guò)修改form 表單下input的type屬性值為search可以改變軟鍵盤右下角的文字為search。

語(yǔ)音識(shí)別完成事件
document.getElementById("speech").addEventListener('recognized', function(e) {
    console.log(e.detail.value);
});

擴(kuò)展閱讀

使用Native.js實(shí)現(xiàn)打開(kāi)頁(yè)面默認(rèn)彈出軟鍵盤

代碼塊激活字符: minput

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 6,497評(píng)論 0 17
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 本人做php的,最近發(fā)現(xiàn)JS真的是博大精深啊,比PHP難.在HTML中,表單是由form元素來(lái)表示的,但是在jav...
    linfree閱讀 2,201評(píng)論 3 17
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,180評(píng)論 4 61
  • 荼靡,因?yàn)橐皇赘瑁P(guān)注一個(gè)故事,或者說(shuō)兩個(gè)。 一是嬰兒哭啼 二是學(xué)遊戲 三是青春物語(yǔ) 四是碰巧遇見(jiàn)你 莫名奇妙被...
    透明的城市閱讀 283評(píng)論 0 0