2010-12-08 19 views
17

私はこのような多くの入力フィールドを持っていますjQuery onClickは要素のidを取得します。

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

このラジオボタンをクリックすると、ラジオ入力のIDを取得します。私は次のコードを使用しています

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

このエラーが発生しています

a.attributes is undefined 
+1

ハルシャは、あなたが、それは問題1つの提案@harsa – kobe

+1

すでにjqueryのを使用しているようで、引数として関数にこれを渡す必要がありますインライン関数をdocument.ready onchangeイベントに変更します。これにより、明確な分離と、値の渡しなどのエラーの変更が少なくなります。 – kobe

+0

ありがとうございました。私はあなたの右と思う –

答えて

26

HTML、このエラーを取得して使用しています関数へ

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

あなたは数秒で私の答えを打ち負かすただ冗談hmmm – kobe

2

パスこれを

enableTxt(this) 

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

になりますが、別のオプションは、これはあなたのオブジェクトではJQ

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

である

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

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

をお試しください現在this

0

HTMLからわずかIDを渡すことができ、この

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

HTML

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

jQueryの

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

私はあなたの応答が好きです、それはきれいです。私が理解していないことは、あなたが追加した 'e.preventDefault();'行です。それがなぜそこにあるのか私に説明してもらえますか? – Jacob

+1

ボタンがフォームになっていると、フォームが転記されないようになります。つまり、フォームは同じページにとどまります。あなたの質問に必須ではなく、無視することができます –

関連する問題