2010-12-08 26 views
17

tengo muchos campos de entrada como estajQuery onClick capturar el id del elemento

<input type="radio" name="name" id="name" onchange="enableTxt()" /> 

cuando hago clic en este botón de radio que quiero capturar el ID de la entrada de radio. Estoy utilizando el siguiente código

function enableTxt() { 
    var id = $(this).attr("id"); 
    alert(id); 
} 

estoy recibiendo este error

a.attributes is undefined 
+1

Harsha, tiene que pasar esto a la función como argumento, que es el tema – kobe

+1

@harsa una sugerencia que ya está utilizando jQuery, cambie la función en línea a document.ready onchange event, para que quede clara la separación y menos cambios de errores como pasar los valores, etc. – kobe

+0

gracias gov. creo que tu derecho –

Respuesta

26

HTML:

<input type="radio" name="name" id="name" onchange="enableTxt(this)" /> 

JS:

function enableTxt(elem) { 
    var id = $(elem).attr("id"); 
    alert(id); 
} 
+0

superaste mi respuesta en unos segundos hmmm es broma – kobe

2

pasar esta a la función

enableTxt(this) 

function enableTxt(item) { 
    var id = $(item).attr("id"); 
    alert(id); 
} 
2

probar este

alert($("input:radio").attr('id')); 
2

se puede pasar sólo el ID del HTML

<input type="radio" name="name" id="name" onchange="enableTxt($(this).attr('id'))" /> 

function enableTxt(id) 
{ 
    alert(id); 
} 
0

Otra opción es con JQ

$("#name").on('onchange',enableText); 

Con este su objeto será la actual esto

3

El html

<button class="destroy" id="123"> 

El jQuery

$('button.destroy').on('click', function(e){ 
    e.preventDefault(); 
    console.log(this.id); 
+0

Me gusta tu respuesta, es la más limpia. Lo único que no entiendo es la línea 'e.preventDefault();' que ha agregado. ¿Te importaría explicarme por qué está ahí? – Jacob

+1

Bueno, si el botón está en un formulario, esto evitará que el formulario se publique, de esa manera permanece en la misma página. No es necesario en su pregunta y puede ser ignorado –

Cuestiones relacionadas