3 Stimmen

Wie führt man .select() auf jQuery maskierte Texteingabe

Ich benutze http://digitalbush.com/projects/masked-input-plugin/ Plugin.

Es gibt einen Eingabetext mit definierter Maske:

<input type="text" id="txtMyInput" class="FocusSense"/>

und ein Drehbuch:

$(document).ready(function () {
    jQuery(function ($) {            
        $("#txtMyInput").mask("?9.99");            
    });
    $(".FocusSense").focus(function () {
        this.select();
    });
})

Wie Sie sehen können, würde ich gerne alles in txtMyInput im Fokus, aber leider! Beim Scharfstellen erscheint die Maske und verliert .select() .

Was sollte ich tun, um die Maske und .select() ?

5voto

ygssoni Punkte 7129

Ich denke, was Sie suchen, ist dies:

$(document).ready(function () {
    jQuery(function ($) {            
        $("#txtMyInput").mask("?9.99");            
    });
    $(".FocusSense").focus(function (e) {
      var that = this;
      setTimeout(function(){$(that).select();},10);
      return false;
    });
});

setTimeout wird die Ausführung von select() in eine Warteschlange stellen. Der Inhalt wird also erst ausgewählt, wenn die Maskierung abgeschlossen ist.

Arbeits-Demo

2voto

insomiac Punkte 5482

Müssen Sie $(this) verwenden, um das aktuelle Objekt zu erhalten.

$(document).ready(function () {
    jQuery(function ($) {            
        $("#txtMyInput").mask("?9.99");            
    });
    $(".FocusSense").focus(function () {
        $(this).select(); // instead of this.select();
    });
});

1voto

yasaricli Punkte 2413

Sory change focus change click function;

jQuery(".FocusSense").click(function() {
    this.focus();
    this.select(); 
});

0voto

yasaricli Punkte 2413

This.select() ändert jQuery(this).select();

$(".FocusSense").focus(function () {
    jQuery(this).select();
});

-1voto

Marek Ka. Punkte 329

Dies ist ein Duplikat von ' jQuery maskierte Eingabe-Plugin. Wählen Sie alle Inhalte, wenn Textfeld erhält den Fokus ', wo ich eine Erklärung für diese Korrektur veröffentlicht habe.

imeout-Methode ist unnötig!

$(".yourMaskedInput").attr("readonly", true).select().removeAttr("readonly");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X