現在フォーカスされている要素を切り離して再度挿入するときに、Tab キーを使用してフィールド間を移動すると問題が発生します。jsfiddleで私のコードを見つけてください。. 以下も参照してください。
JS コード:
$(document).ready(function() {
$('.formElem').focusin(function() {
// Remove default text on focus in
if ($(this).val() == $(this).attr('title')) {
$(this).val('').removeClass('defaultText');
if (($(this).attr('id') == 'reg_pwd') || ($(this).attr('id') == 'reg_conf_pwd')) {
id = '#' + $(this).attr('id');
marker = $('<span>123</span>').insertBefore($(this));
$(this).detach().attr('type', 'password').insertAfter(marker);
marker.remove();
}
if ($(this).get(0) != $(':focus').get(0)) {
$(this).focus();
}
}
}).focusout(function() {
// Remove default text on focus out
if ($(this).val() === '') {
$(this).val($(this).attr('title')).addClass('defaultText');
if (($(this).attr('id') == 'reg_pwd') || ($(this).attr('id') == 'reg_conf_pwd')) {
marker = $('<span>123</span>').insertBefore($(this));
$(this).detach().attr('type', 'text').insertAfter(marker);
marker.remove();
}
}
});
});
このコードは、フィールドのタイプをテキストからパスワードに変更し、前後に変更します。クリックするか、Tab を使用してパスワード フィールドに移動すると、再度追加した後にフォーカスが失われます。誰かが理由を理解できるなら、ありがとう。