2017-04-16 13 views
0

Webページの一部の入力にdatetime pickerを使用しています。問題は、モバイルデバイスを使用して入力を選択すると、日時ピッカーとモバイルデバイスのキーボードの両方が表示されることです。入力で 'readonly'属性を使うと、この問題は解決されますが、入力を編集できなくなります。私が望むのは、入力を携帯端末で読み取り専用にし、PC上で編集可能にすることです。私はモバイルデバイスとPCを区別するための最良の方法を探しています。モバイルデバイスとPCのJavascript/jQueryの相違

これは私がこれまで持っているものです。

if (/Mobi|Tablet|iPad|iPhone/.test(navigator.userAgent)) { 
    $('.dtpicker').each(function(){ 
     $(this).prop('readonly', true); 
    }); 
} 

歓迎される示すからデフォルトのモバイルキーボードを防止する任意の他の方法。

+0

ウィンドウサイズの外観や幅に扱う<720px(電話)$(この) 'もし – TypedSource

+0

興味があるだけ.attr( 'readonly'、true);も同様に機能し、値の設定を妨げません。 – yezzz

+0

@yezzz datetime pickerや入力に値を設定するスクリプトを妨げないので、ユーザーが値を編集できなくなります。 – user1885099

答えて

2

Afaikモバイルキーボードはフォーカスイベントを使用してキーボードを表示し、ぼかしを使用して非表示にします。フォーカス後にreadonly属性を削除すると、キーボードがポップアップしないはずです。

Clickイベントは、私が代わりに焦点を当てることを選択したようにフォーカスした後に解雇される傾向にある。

if (/Mobi|Tablet|iPad|iPhone/.test(navigator.userAgent)) { 
    $('.dtpicker').each(function() { 
    $(this).attr('readonly', true) 
     .on("click", function() { 
     $(this).removeAttr('readonly'); 
     }) 
     .on("blur", function() { 
     $(this).attr('readonly', true); 
     }) 

    }) 
} 
+0

これは完全に動作します、あなたの助けてくれてありがとう! – user1885099

関連する問題