2016-05-17 36 views
0

ich mehrere Textfelder mit jeweils einem span-Elemente wie diese:entfernen span-Element auf Fokus

<span class="reqDiv" name="Required">This value is required</span> 
<input class="form-control" id="txtAddress" placeholder="Address" type="text" maxlength="50" autocomplete="off"> 

<span class="reqDiv" name="Required">This value is required</span> 
<input class="form-control" id="txtZip" placeholder="Zip Code" type="text" maxlength="5"> 

Ich mag das span-Element der Textbox entfernen, die im Fokus ist. Ich habe den folgenden Code jquery ausprobiert, der das Span-Element aller Textfelder anstelle des bestimmten Textfelds "on-focus" entfernt. Wie kann ich es erreichen?

Die jquery:

$("#Offer_Form").find(".form-control").on("focus", function (e) { 
     $("span[name='Required']") 
    }); 

EDIT: Dies ist, wie ich Span-Tag durch jquery bin zu erzeugen:

var SetErrorStateForControl = function (elemObj, msg) { 
     elemObj.closest('div').find($("span[name='Required']")).remove(); 
     $('<span class="reqDiv" name="Required">' + msg + '</span>').prependTo(elemObj.closest('div')); 
    } 
+0

versuchen entfernen Sie nicht 'span', hide (Toggle) es. Wenn Sie das Eingabefeld verlassen, ohne es zu füllen, verlieren Sie Ihr Etikett! –

Antwort

0

Sie die prev() Methode verwenden, können die entsprechenden Spanne jedes Etikett zu erhalten

$("#Offer_Form").find(".form-control").on("focus", function(e) { 
    $(this).prev().remove(); 
}); 
+0

Dieser Bereich erscheint auf meinen Textfeldern. Ich habe deinen Code ausprobiert, aber er bleibt da drüben und wird überschrieben, was auch immer ich in das Textfeld eingebe. –

0

Die .prev([selector]) Verfahren erhalten die unmittelbar Geschwister vorhergehenden

Wenn Sie das vorherige span Element entfernen mögen Sie dies versuchen:

$(document).ready(function(){ 
    $(".form-control").focus(function(e) { 
     $(this).prev('span').remove(); //.prev('span') get the previous span 
    }); 
}); 
+0

Diese "vorherige" Sache funktioniert nicht. Es entfernt es nicht –

0

Sie sollten die vorherige Spanne und hide() Funktion zum Entfernen der Spanne prev() Funktion für die Suche. Beispiel ist Here

$(document).ready(function(){ 
    $('input.form-control').focus(function(e) { 
     $(this).prev('span').hide(); // use hide() for hiding 
    }); 
}); 

Wenn Sie die Spanne statt versteckt entfernen wollen, dann benutzen Sie einfach remove() Funktion.

$(this).prev('span').remove(); // use remove() for removing 
+0

es entfernt nicht die Spanne –

+0

@HumaAli Ja es ist nur die "span" verstecken, wenn Sie entfernen möchten dann verwenden Sie 'remove()' -Funktion. Ich aktualisiere Antwort –

+0

Es entfernt immer noch nicht die Spanne. Diese Zeile '$ (this) .prev ('span'). remove();' Funktioniert nicht richtig –

1

Man könnte so etwas wie dieses

$("input.form-control:text").focus(function() { 
    $(this).prev().remove(); 
});