2010-12-08 3 views
17

j'ai de nombreux domaines d'entrée comme celui-cijQuery onClick capturer l'id de l'élément

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

quand je clique sur ce bouton radio que je veux saisir l'identifiant de l'entrée radio. je suis en utilisant le code suivant

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

reçois cette erreur

a.attributes is undefined 
+1

Harsha, vous devez passer ce à la fonction comme argument, qui est la question – kobe

+1

@harsa une suggestion que vous utilisez déjà jquery, changez la fucntion inline en événement document.ready onchange, de sorte qu'il sera clair séparation et moins de changements de faire des erreurs comme les valeurs de passage etc – kobe

+0

merci gov. Je pense que votre droite –

Répondre

26

HTML:

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

JS:

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

vous avez battu ma réponse en quelques secondes hmmm je plaisante – kobe

2

passe ce à la fonction

enableTxt(this) 

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

Essayez cette

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

Vous pouvez juste passer l'ID du HTML

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

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

Une autre option est avec JQ

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

Avec ce votre objet sera le courant ce

3

Le html

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

Le jQuery

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

J'aime votre réponse, c'est le plus propre. La seule chose que je ne comprends pas est la ligne 'e.preventDefault();' que vous avez ajoutée. Pourriez-vous m'expliquer pourquoi c'est là? – Jacob

+1

Eh bien, si le bouton est dans un formulaire, cela empêchera la publication du formulaire, de cette façon il reste sur la même page. Ce n'est pas obligatoire dans votre question et peut être ignoré –