2012-03-07 4 views
0

동적으로 생성 된 라디오 버튼 그룹을 반복하고 레이블을 가져오고 싶지만 값을 인쇄하려고하면 아무 것도 나타나지 않습니다.이 스크립트 데모는 예제 http://jsfiddle.net/HaBhk/20/을 참조하십시오. 여기에 생성 된 버튼을 갈 것입니다 내 HTML입니다 아래 라디오 버튼 그룹을 반복하고 레이블을 가져옵니다.

<div data-role="content"> 
    <div data-role="collapsible" data-inset="true"> 
    <h1>AddVote</h1> 
    <div data-role="fieldcontain" > 
    <input type="text" name="name" id="question" value="" /><br> 
    <div data-role="controlgroup" data-type="horizontal" > 
     <label for="name"><a href="" id="AddButton" data-role="button" 
    data-icon="plus">Add</a><a href="" id="RemoveButton" data-role="button" 
    data- icon="delete">Delete</a> 

     </label> 
     <input type="text" name="option" id="option" value="" /><br> 

     </div> 

    <div data-role="fieldcontain"> 
    <form name="OptionsForm" id="InputForm" method="get"> 
    <div id="after" data-role="controlgroup"> 
    /////Generated radio buttons goes here 
    </div> 
    </form> 
    </div> 

    <a href="#approve" id="publishButton" data-role="button" 
    data-inline="true"data-transition="flip">Preview</a> 
    </div><!-- /content --> 

라디오 버튼 값을 얻기 위해 내 스크립트입니다

$('#publishButton').click(function(){ 
    var result 
var y=document.getElementById('question').value 
var form='<Question value=' + y + '/>'+'<br>' 
alert(form); 
$('input:radio').each(function() { 
    var value=$('input:radio').val() 
    '<option value='+value + '/>'+'<br>' 
    alert(result); 

    }); 

답변

2

다음은 라디오 옵션에 대한 관련 레이블을 반환하는 몇 가지 샘플 코드입니다. .

지식 위해서
var labels = []; 
$('input:radio').each(function(){ 
    labels.push($('label[for='+$(this).attr('id')+']').text()); 
}); 
alert(labels); 
1

이 시도 : http://jsfiddle.net/HaBhk/24/

을 0
<input type="text" name="option" id="option" value="" /><br> 
<div id="AddButton" data-role="button" data-inline="true">Add</div> 
<div id="RemoveButton" data-role="button" data-inline="true">remove</div> 
<div id="publishButton" data-role="button" data-inline="true">publish</div> 
<div data-role="fieldcontain"> 
    <fieldset data-role="controlgroup"><legend>Choose an Option:</legend><br><br> 
     <div id="after"> 
     </div> 
    </fieldset> 
</div> 
<script type="text/javascript"> 
    function createRadioElement(elem, label, checked) { 
    var id = 'option1_' + label; 
    $('#after').append($('<div><input type="radio" name="option1" id="'+id+ '" value="1"/><label for="' + id + '">'+label + '</label></div>')); 
} 

$('#AddButton').click(function() { 
    var x = document.getElementById('option').value; 
    createRadioElement(this, $('#option').val()); 
}); 
$('#RemoveButton').click(function() { 
    $('#after').children().children("input[checked='checked']").parent().remove(); 
}); 

$('#publishButton').click(function() { 
    var result; 
    $('#after input:radio').each(function() { // only radio buttons in #after 
     var value = $(this).next('label').html(); 
     alert(value); 
    }); 
}); 
</script> 
+1

, 그것은 ('입력 : 라디오 + 라벨')'$를 사용하여 수행 할 수 있었다 each' 직접'$ (이)는 .text()' –

+0

아, 그리고 복사/귀하의 특정 코드를 귀하의 답변에 붙여 넣으십시오. 링크 만있는 것보다 훨씬 낫습니다. –

+0

고객님의 답변을 게시하는 것이 더 낫습니다. 나는 너보다 길을 도왔다 고 생각한다. – user1242756

1
$('#publish').click(function() { 
    var labs = $(':radio + label'), 
     alertString =[]; 
    for (var i = 0, labLen = labs.length; i < labLen; i += 1) { 
     alertString[i] = labs[i].id;      
    }; 
    alert(alertString.join("\n"));    
}); 
관련 문제