ユーザーが無効な入力を送信またはフォーカスしたときにエラーdivに折り返されたテキストフィールドがあります。ユーザーが間違いを訂正した場合、ラッパーを削除したいのですが、unwrap()
メソッドを使用すると、フィールドのフォーカスが失われます。jQuery:unwrap()のテキストフィールドが失われる
$(special_input).live('keyup', function() {
if (input_okay && input_had_errors) {
$(this).unwrap();
}
});
大した、どこにでもなく、IEで...私はフォーカスをリセットすることができ、それが正常に動作します...
$(this).unwrap().focus();
!私はsetTimeOut()
の機能を上記の関数内に挿入して、focus()
イベントのバブリングに対するIEの不足を回避しようとしました。
カーソルは、末尾ではなくタイプされているものの先頭に設定されます。 (何??)
フォーカスをリセットすることはとにかく醜いようです。 unwrap()
を最初から設定しないようにする方法はありますか?
ありがとうございました。
ちょっと-ソリューション:エンダーととらえどころのない指摘の理由から
、私はちょうど上で焦点を当てた後、テキストフィールドの値をリセットすることによって行うことができ、見当違いのカーソルの問題を解決することを決めましたもう一度。コードは今このようになります。
$(this).unwrap();
setTimeout(function() { $(this).focus().val($(this).val()); }, 5);
Gar。ヘッドアップをありがとう。それがどのように動作するのか気づかなかったが、他にどのようにできるのだろうか?私は代わりに、私はIEのテキストフィールドの最後にそのカーソルを取得しようとします... – hellodally