2011-09-17 8 views
19

Quiero un poco de código jQuery que me permita encontrar la etiqueta de un control cuando hago clic en el cuadro de texto ... así que en mi HTML tengo esto:Use jQuery para encontrar la etiqueta de un control o cuadro de texto seleccionado

<label id="ctl00_WebFormBody_lblProductMarkup" for="ctl00_WebFormBody_txtPriceAdjustment">This Is My Label Value</label> 

<input type="text" style="width:29px;" onclick="alert('label value here');" title="Here is a title" id="ctl00_WebFormBody_txtPriceAdjustment" maxlength="3" name="ctl00$WebFormBody$txtPriceAdjustment"> 

así, cuando hago clic en mi cuadro de texto, quiero (por ejemplo) para hacer una alerta ... con el texto que está dentro de mi sello - por lo que en este caso sería alertar "este es mi sello valor"

esperanza que tiene sentido :)

Respuesta

2
$("#ctl00_WebFormBody_txtPriceAdjustment").bind("click",function(){ 
    alert($("label [for=" + this.id + "]").html()); 
}); 

o posiblemente

alert($(this).closest("label").html()); 

en función de su margen de beneficio es posible que sólo será capaz de seleccionar los hermanos siguientes o anteriores también.

2

En un código HTML como éste:

<label for="input-email">Email</label> 
<input type="text" name="input-email" value="" /> 

se puede encontrar el contenido de la etiqueta como esta:

$('label[for="input-email"]').html(); 
+1

El atributo de la etiqueta etiqueta debe corresponder a la Identificación del atributo en la entrada. –

1

intente esto:

$('input[type=text]').focus(function(){ 
    alert($('label[for=' + $(this).attr('id') + ']').html()); 
}); 
38

Utilice el atributo [] como [for='+ this.id +'], donde this.id es el ID de la actualmente focus ed label

$('input').on("focus", function() { 
 
    var labelText = $('label[for='+ this.id +']').text(); 
 
    console.log(labelText); 
 
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<label for="inp">This Is My Label Value</label> 
 
<input id="inp" type="text" >

+2

Id vaya con este pero parece que está utilizando formularios web asp.net así que use el ID de cliente de su control real: $ ('<% = txtPriceAdjustment.ClientID%>'). Haga clic en (función() {... etc. Esto hará que su código sea más robusto en términos de obtener la ID de control renderizado –

0
$('#ctl00_WebFormBody_txtPriceAdjustment').click(function() { 
    alert($('#ctl00_WebFormBody_lblProductMarkup').text()); 
}); 
0

hacerlo con javascript

<script type="text/javascript"> 
function displayMessage() 
{ 
alert(document.getElementById("ctl00_WebFormBody_lblProductMarkup").innerHTML); 
} 
</script> 

<label id="ctl00_WebFormBody_lblProductMarkup" for="ctl00_WebFormBody_txtPriceAdjustment">This Is My Label Value</label> 

<input type="text" style="width:29px;" onclick="displayMessage()" title="Here is a title" id="ctl00_WebFormBody_txtPriceAdjustment" maxlength="3" name="ctl00$WebFormBody$txtPriceAdjustment"> 
Cuestiones relacionadas