1

for ループ条件を使用して動的にラジオ ボタンを作成すると、ラジオ ボタンが作成されません。私がフォローしているコードは

Polldetails.html

      <div data-role="content" class="pollsdetailsscreen">
            <p>Polls details page with radio buttons created dynamically.</p>
        </div>
        <div>   
             <ul id="radiopolls" data-theme="e" >
            </ul>
            comments:<textarea name="pollscomments" id="pollscomments"></textarea>
            <div data-role="content"  >
                <a href="#" data-role="button" style="width: 100px;float:right">Submit</a>
            </div>  
        </div>

Polldetails.js

     var pollsDetails = function pollsDetails(){

//for(var i=0;i<4;i++)
//  {
//var radiobutton = document.createElement('label');
//radiobutton.innerHTML="<input type='radio' name='hello'>hii000";
// $('#radiopolls').prepend(radiobutton).trigger('create');
//  }


for(var i=0; i<4; i++)
    {
        if(data.type == "poll")
            {
                             console.log("this is polls page");
                            //here i need to create four radio buttons dynamically based on below **data** options. 
            }
        else if(data.type == "review")
            {
              console.log("this is reviews page");              
            }                       
    }
     }



        var data = {
       type:"poll",
       question : "How are you?",
       options : [{
           type : "radio",
           name: "radioTest",
           text: "Good"
       },
       {
           type:"radio",
           name: "radioTest",
           text: "Fine"
       },
       {
           type:"radio",
           name: "radioTest2",
           text: "Nice"
       },
       {
           type:"radio",
           name: "radioTest2",
           text: "V Nice"
       },
       {
           type:"checkbox",
           name:"check",
           text:"This is a check box"
       },
       {
           type:"textarea",
           name:"comments",
           text:"Comments Please"
       }    
       ]
    };

条件をチェックしてコードに従って、条件がdata.type = "poll"の場合、4つのラジオボタンを動的に作成する必要がありますが、コードに基づいてラジオボタンを動的に作成することはできません..誰か助けてください.. .........

4

1 に答える 1

1

1 つのフォーム値に対して、ラジオ ボタンとその他の入力タイプを組み合わせて使用​​することはできないことに注意してください。4 つのラジオ ボタンに 2 つの異なる名前を付けると、基本的に、それぞれ 2 つの回答を持つ 2 つの個別の質問が作成されます。以下のコードはあなたが望むものを正確に生成しないと確信していますが、必要に応じて微調整するだけで十分です。

if (data.type === 'poll') {
    var poll = {};
    for (optionIndex = 0; optionIndex < data.options.length; optionIndex++) {
        var option = data.options[optionIndex];
        if (option.type === 'radio') {
            var fieldset = poll[option.name];
            if (!fieldset) {
                poll[option.name] = fieldset = $('<fieldset data-role="controlgroup">');
                fieldset.append( $('<legend>').html(data.question) );
            }

            var answerID = 'poll-answer-' + (optionIndex + 1);
            fieldset.append( $('<input type="radio" />').attr('name', option.name).attr('value', option.text).attr('id', answerID) );
            fieldset.append( $('<label>').attr('for', answerID).html(option.text) );
        }
    }

    var containerElement = $('#radiopolls');
    for (answerSet in poll) {
        poll[answerSet].appendTo(containerElement).trigger('create');
    }
}

それを適応させるのに助けが必要な場合は、尋ねてください. 幸運を!

于 2012-06-14T08:17:17.693 に答える