読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

iOSのjavascriptのeventでfocus + setSelectionRange()が効かない

JavaScript jQuery

スポンサードリンク

どうすればいいんだ。。。。。

Javascriptと、いっておいて実はjquery

var inputTextAllSelect = function(e) {
  try {
    // ここでiosで全選択させるように処理
    e.target.setSelectionRange(0, e.target.value.length);
  } catch (exc) {
    // PCでは、input[type="number"]とかだとエラーになるので、ここは便利な関数を使う
    $(e.target).select();
  }
};

$('input').on({
  focus: function(e) {
    inputTextAllSelect(e);
  }
});

これだとうまくいかない

focusで受け取ってはいて、一度は全選択されるんだけど、続けてよくわからない処理に邪魔されて全選択が解除される。

この動きを0.05秒ぐらいの速さで処理されるので動いていないように見える。

さて困った。

なんてこともなかった。

var inputTextAllSelect = function(e) {
  try {
    // ここでiosで全選択させるように処理
    e.target.setSelectionRange(0, e.target.value.length);
  } catch (exc) {
    // PCでは、input[type="number"]とかだとエラーになるので、ここは便利な関数を使う
    $(e.target).select();
  }
};

$('input').on({
  click: function(e) {
    inputTextAllSelect(e);
  }
});

eventclickにしたらできた。でも本当はfocusがいいなぁ。。。

謎は解けないけど、仕事は進んだので良しとします。