2016-09-19 13 views
0

私は自分のページにラジオボタンを複数持っています。各セットには、[テキストの入力]または[イメージのアップロード]の2つのオプションがありますそのようなセットの数は動的に決定され、Jqueryを使用してWebページ内に作成されます。これらの2組のラジオボタンはそれぞれフォーム内にあります。Jqueryラジオボタンの変更を検出

私の問題は、これらのラジオボタンのいずれかの変更を検出できないことです。ここでは、ラジオボタンを作成私のコードの一部である - 。

anstypeforms[i] = $('<form style = "padding:5px; margin:5px;">').attr('id', 
        function(){ 
         return 'AnsMethod'+quest[k].questionid; 
        }).appendTo($("#AnswerDiv"+quest[i].questionid)); 

$(「#AnswerDiv」+クエスト[i]は.questionidが動的に作成されたいくつかの<div>あるクエスト[i]が.questionidです。番号

次のようにラジオボタンが作成された - ここ

$('<input type="radio" name = "method" value = "TextMethod" checked = "checked" > Type Text </input>').appendTo(anstypeforms[i]); 
$('<input type="radio" name = "method" value = "ImageMethod" > Upload Image </input>').appendTo(anstypeforms[i]); 

は、ボタンの任意の変化を検出しようとするコードの一部である:

$(document).ready(function() { 
$("[id^='AnsMethod']").on('change', 'input[name=method]:radio', function(e) { 
    e.preventDefault(); 

.......do something...... 

}); 
}); 

どこが間違っていますか?

+0

あなたがエラーを持っているあなたの生成されたHTMLで - ここ

$('<input type="radio" class="rbutton" value = "TextMethod" checked = "checked" > Type Text </input>').attr('name', function(){ return 'method'+quest[k].questionid; }).appendTo($("#AnswerDiv"+quest[i].questionid)); $('<input type="radio" class="rbutton" value = "ImageMethod" > Upload Image </input>').attr('name', function(){ return 'method'+quest[k].questionid; }).appendTo($("#AnswerDiv"+quest[i].questionid)); 

は識別コードです。入力は ' text'のようには見えません。 –

答えて

0

いくつかの試行後に、ラウンドアバウトの方法で作業することができました。私は最初に各ラジオボタンに一意の名前を付けました。その後、ラジオボタンに変更があるかどうかを検出しました。次に、変更されたラジオボタンの名前を特定しました。残りのコードを進め名の使用 -

$(document).on("change", 'input[type=radio]', function(e){ 
e.preventDefault(); 
var x = $(this).attr('name').substring(6); 
var y = $(this).attr('value'); 
switch(y) { 
    case 'TextMethod': 
     ....do something.... 
     break; 
    case 'ImageMethod': 
     ....do something.... 
     break; 
    } 
}); 
関連する問題