Android input輸入框 移動頁面input手機鍵盤中的“搜索”按鍵


動頁面input手機鍵盤中的“搜索”按鍵



滿足以下幾點機即可:

    input type="search"
    放到form標簽中
    使用action屬性

<form action="." >
  <input type='search' />
</form>

 



注意:

如果只使用input type="search",而不放到form標簽中,則顯示“換行”;
如果放到form中,但是使用type="text",則顯示“前往”;
如果放到form中,使用input type="search",但沒有action屬性,Android不會有問題,但在IOS8以上的系統中,鍵盤上仍不會顯示“搜索”,而是顯示“換行”。
回車事件

如果頁面中不設置“搜索”按鈕來觸發搜索操作,而是當點擊鍵盤中的“搜索”時就進行搜索操作。可以監聽輸入框的回車事件。比如在onKeyDown事件監聽中,獲取事件keyCode,判斷是否輸入“回車”(keyCode=13),然后再進行相關的搜索操作。
點擊搜索之后頁面自動刷新的問題

因為這個form中只有一個輸入框,所以在輸入框中輸入回車時,頁面會自動刷新。要避免此情況,可以在添加一個隱藏的input。

<form action="." >
  <input id="iptSearch" type='search' />
  <input type="text" style="display:none;"/>
</form>

 



輸入框內的小叉X

type=“search”的輸入框在獲取到焦點后,默認會出現一個小叉叉,用於清空輸入框中的內容,而且樣式因瀏覽器而異。如果想要隱藏這個X,可以使用如下CSS:

input[type="search"]::-webkit-search-cancel-button{
    -webkit-appearance: none;
}

 



參考閱讀:

    Show 'Search' button in iPhone/iPad Safari keyboard:
    https://stackoverflow.com/questions/4864167/show-search-button-in-iphone-ipad-safari-keyboard
    你不知道的input[type=search]: http://blog.csdn.net/xxxxxmiss/article/details/51534626
    HTML Button自動刷新頁面的問題: http://blog.csdn.net/jrainbow/article/details/44978843



作者:Evelynzzz
鏈接:https://www.jianshu.com/p/f083f72db7cc
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。



 keyCode 事件屬性

事件對象參考手冊 事件對象
實例

獲取按下的鍵盤按鍵Unicode值:
var x = event.keyCode;

x 輸出結果為:
119   // 119 是字符 "w"

嘗試一下 »

本文底部包含了更多實例。
定義和使用

keyCode 屬性返回onkeypress事件觸發的鍵的值的字符代碼,或者 onkeydown 或 onkeyup 事件的鍵的代碼。

兩種代碼類型的區別是:

    字符代碼 - 表示 ASCII 字符的數字
    鍵盤代碼 - 表示鍵盤上真實鍵的數字

p>兩種類型的值不是都相等的,例如小寫字符 "w" 和大寫字符 "W" 有相同的鍵盤代碼,因為他們他們鍵盤上 ( "W" 代碼為 "87"),但是它們有不同的字符代碼,兩個字符輸出是不一樣的( "w" 和 "W" 字符代碼為 "119" 和 "87") - 查看以下實例可以更好的理解。

提示: 如果需要知道用戶按下的是打印鍵 (如 "a" 或 "5"),建議使用 onkeypress 事件。如果需要知道用戶按下的是功能鍵(如 "F1", "CAPS LOCK" 或 "Home") 可使用 onkeydown 或 onkeyup 事件。

注意: 在 Firefox 中,, keyCode 屬性在 onkeypress 事件中是無效的 (返回 0)。瀏覽器兼容問題,可以一起使用 which 和 keyCode 屬性來解決:
var x = event.which || event.keyCode;  // 使用 which 或 keyCode, 這樣可支持不同瀏覽器

提示: 所有 Unicode 字符列表可查看我們的 完整 Unicode 參考手冊。

提示: 如果你需要將 Unicode 值轉換為字符,可以使用 fromCharCode() 方法。

注意: 該屬性是只讀的。

注意: which 和 keyCode 屬性提供了解決瀏覽器的兼容性的方法,最新版本的 DOM 事件推薦使用 key 屬性來替代該方法。

提示: 如果你想查看是否按下了 "ALT", "CTRL", "META" 或 "SHIFT" 鍵,可使用 altKey, ctrlKey, metaKey 或 shiftKey 屬性。


語法
event.keyCode
技術細節
返回值:     數字,表示 Unicode 字符代碼或 Unicode 鍵代碼
DOM 版本:     DOM Level 2 Events


實例

使用 onkeypress 和 onkeydown 來演示字符代碼與鍵盤代碼的區別:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">

function uniCharCode(event) {
    var char = event.which || event.keyCode;
    document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}

function uniKeyCode(event) {
    var key = event.keyCode;
    document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

 



當在鍵盤上按下 "a" 鍵 (不使用大寫鎖定), 輸出結果如下:
Unicode 字符代碼: 97
Unicode 鍵代碼: 65


實例

如果按下 Esc 鍵彈出提示信息:

<input type="text" onkeydown="myFunction(event)">

function myFunction(event) {
    var x = event.keyCode;
    if (x == 27) {  // 27 是 ESC 鍵
        alert ("You pressed the Escape key!");
    }
}

 




實例

將 Unicode 值轉換為字符 (不能用於功能鍵):
var x = event.keyCode;                // 獲取 Unicode 值
var y = String.fromCharCode(x);       // 將值轉換為字符
[參考](http://www.runoob.com/jsref/event-key-keycode.html)


 js實現主動使input失去焦點

 主要解決在手機端,input輸入完成,鍵盤還是彈出狀態。

var input = document.getElementById("your-input-id");
input.blur();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM