2012-05-04 17 views
4

フォーカス/クリック時にiphoneデバイスの入力テキストをすべて選択することはできますか?フォーカス/クリック時にiphoneデバイスの入力テキストをすべて選択することはできますか?

通常1が使用するブラウザ環境のために:

$('input').bind("click focus", function() { 
$(this).select(); 
}); 

これは、デスクトップブラウザ用に動作しますが、iphoneやおそらく他のモバイルデバイス用の無応答表示されます。

$('input').live("click", function() { 
    $('input').each(function(){ 
     $(this).select(); 
    }); 
}); 
$('input').live("focus", function() { 
    $('input').each(function(){ 
     $(this).select(); 
    }); 
}); 
+1

touchstartあなたが 'touchstart'と' mspointerdown'を追加しようとしたことがあり、クリックして、焦点を当てたイベントを再配置する必要がありますイベントのリスト?これがうまくいかない場合、ビデオオブジェクトのオーディオレベルを制御するのと同じように、モバイルOSによってブロックされる可能性があります。 – Sampson

+0

お薦めいただきありがとうございます。私はそれを与えるだろう! –

+0

[iOSデバイス(モバイルSafari)の入力フィールドでプログラムでテキストを選択する](http://stackoverflow.com/questions/3272089/programmatically-selecting-text-in-an-input-field-on-ios) -devices-mobile-safari) – Lix

答えて

0

私はこのようなものを使用します。

+0

ライブは推奨されていません。 – user1167442

1
$('input[type="text"]').on('focus',function(){ 
    $(this).get(0).selectionStart=0; 
    $(this).get(0).selectionEnd=999; 
}) 

私はもともとこの情報hereを発見し、その結果を達成している人々が試みている他のものがあります。

+0

'$(this).get(0)'は 'this'とまったく同じです。実際には –

+0

です。どのように私の余分。 – user1167442

2

タイムアウトを小さく設定すると、 iOSキーボードがデリゲートなどで呼び出されたように見えます。フォーカスイベントが失われているため、選択することができません。同じ理由でselect()が機能しませんでした。

私はそれをこのように固定:

function focusMe(vitem) { 
    window.setTimeout(function() { 
     vitem.setSelectionRange(0, 9999); 
    }, 10); 
} 

<input onfocus="focusMe(this)" /> 
1

は、基本的には、その後、

$('#myID').on('focus click touchstart', function(e){ 
$(this).get(0).setSelectionRange(0,9999); 
//$(this).css("color", "blue"); FUBAR 
e.preventDefault(); 
}); 
関連する問題