JavaScriptを使用してHTML5をシミュレートしようとしています。私の目的はこのようなものを作ることです:すべてのipadの場合にテキストボックス上でクリック可能な画像を作成する(iOSのHTML5検索入力タイプを作成する)
まず、私はHTML5を直接入力タイプを検索する使用しなかった理由を指定します。 iPadの場合、上記の入力タイプでは丸みのある角のテキストボックスが表示され、ネイティブの検索入力ボックスに必要な他のすべての機能は、ユーザーがテキストを入力したときにテキストボックスの隅にある小さな十字(x)アイコンを除いてiOSと似ています検索ボックスに入力します。
私はすべて試してみました - ( - WebViewのか、携帯電話のブラウザアプリはiPad上で展開されている場合のみ)なしは、所望の効果をもたらすように思わないtype='search'
を再配置、<form>
に入力型検索を置く、など。
私は十字アイコンを使ってウィジェットをシミュレートし、検索ボックス内のコンテンツに基づいて選択的に表示/非表示しました。 desktop Safari
のすべてのバージョンで正常に動作します(デベロッパーツールを切り替える)。しかし、iPadで試してみると、検索ボックス内に入力すると十字アイコンが表示されますが、タッチイベントを登録することはできません。ユーザーが入力しているときにオンスクリーンキーボードがアクティブであるため、検索テキストボックスで次のタッチイベントが防止されるため、この理由もわかります。これにより、十字アイコンに触れることも防止される。次のように
私のコードは次のとおりです。
HTMLは次のようになります。
<form id="searchForm">
<div>
<input type="search" id="searchBox">
<a id="cross_icon" >
<img src="search.png">
</a>
</div>
</form>
jqueryのコードは次のようになります。
//This function will be triggered on keyup event on searchBox
showXIcon : function(){
var search = $('#searchBox').val();
if(search.replace(/\s/g, "") === "") {
$('#cross_icon').hide();
} else {
$('#cross_icon').show();
}
},
//this function will be called on click on cross_icon
clearSearchBox: function(){
$('#searchBox').val('');
$('#cross_icon').hide();
},
が上のタッチイベントを許可するが方法です。画面上のキーボードを明白にぼかすことなく十字アイコンを使用できますか?それ以外の方法や回避策はありますか?
同じ問題!!! – tiger
イベントの伝播を停止しようとしましたか? showXIcon:function(e){e.stopPropagation(); ... – TecHunter
それを試してみました。問題は、アイコンがテキストボックスにあり、アイコンをタップするとテキストボックスにタッチとして登録され、オンスクリーンキーボードがポップアップすることです。 ( – Vidhi