1

ここでラジオボタンの値を取得するのに問題があります: http://testing.feministbitch.com/index.php/quiz_creator . 一番下に完全なコードがあります。

質問を追加をクリックすると、次のラジオボタンを選択できるようにしました: true/false または複数選択。

私はこれをやろうとしています:彼らが真/偽または複数の選択肢を選択するかどうかに基づいて、さらにラジオボタンまたは入力+ドロップダウンが質問の下に表示されます. しかし、私は失敗しています。私を助けてください :)。

ここでの問題は、true_false 値または multiple_choice 値を取得するために var x を等しく設定する方法がわからないことです。

試しましたが、これらはうまくいきませんでした。

 //var x = $("#question_type"+count).value;
 //var x=document.forms["quizquiz"]["question_type" + count].value;

選択したラジオボタンに基づいて、true / falseのものまたは複数のものを追加する私のコードの部分は次のとおりです。

 if (x=="true_false"){
 $('#container').append(
 'The above statement is '+ '<Input id="true_or_false_' + count + '" type = "Radio" Name ="true_or_false[]" value= "true">' + 'True' + '&nbsp;&nbsp;&nbsp;&nbsp;'
 + '<Input id="true_or_false_' + count + '" type = "Radio" Name ="true_or_false[]" value= "false">'+ 'False<br /><br/>'
 );
 }else{
 $('#container').append(
        'A: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'B: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'C: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'D: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' + '<br />'
       +'Correct Choice: '
        +'<select name="correct_choice[]">'
        +'<option value="A">A</option>'
        +'<option value="B">B</option>'
        +'<option value="C">C</option>'
        +'<option value="D">D</option>'
        +'</select>'
        +'<br /><br />'
        );
 }

完全なコードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 <title>Quiz Creator</title>
 <script type="text/javascript" src="http://testing.feministbitch.com/js/jquery.js"></script>
<script type="text/javascript">
var count = 0;
$(function(){
 $('p#add_field').click(function(){
 count += 1;
 $('#container').append(
 '<strong>Question ' + count + '</strong><br />' 
 + 'Question text: ' + '<input id="question_field_' + count + '" name="question_fields[]' + '" type="text" maxlength="300" size="150"/><br />'
 + '<Input id="question_type_' + count + '" type = "Radio" Name ="questiontype_fields'+count+'[]" value= "true_false">' + 'True/False' + '&nbsp;&nbsp;&nbsp;&nbsp;'
 + '<Input id="question_type_' + count + '" type = "Radio" Name ="questiontype_fields'+count+'[]" value= "multiple_choice">'+ 'Multiple Choice<br /><br/>'

 );

 //var x = $("#question_type"+count).value;
 var x=document.forms["quizquiz"]["question_type" + count].value;

 var a=3;
 alert(a);
 if (x=="true_false"){
 $('#container').append(
 'The above statement is '+ '<Input id="true_or_false_' + count + '" type = "Radio" Name ="true_or_false[]" value= "true">' + 'True' + '&nbsp;&nbsp;&nbsp;&nbsp;'
 + '<Input id="true_or_false_' + count + '" type = "Radio" Name ="true_or_false[]" value= "false">'+ 'False<br /><br/>'
 );
 }else{
 $('#container').append(
        'A: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'B: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'C: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' +
        'D: ' + '<input id="multi_choices_' + count + '" name="multiple_choices[]' + '" type="text" maxlength="300" size="150"/><br />' + '<br />'
       +'Correct Choice: '
        +'<select name="correct_choice[]">'
        +'<option value="A">A</option>'
        +'<option value="B">B</option>'
        +'<option value="C">C</option>'
        +'<option value="D">D</option>'
        +'</select>'
        +'<br /><br />'


        );
 }


 });
});
</script> 



</head>



<body>



<div id="upload">
 <h1>Quiz Creator</h1>


    <?php

    $attributes = array('name' => 'quizquiz', 'id' => 'quizquiz');

    echo form_open_multipart('quiz_creator');
    //controller named quiz_creator

    ?>
    Quiz Name: <input id="quiz_name" name="quiz_name" type="text" maxlength="100" size="100"/><br /><br />
    <?php

//-------------------------------------------------study guide uploader
 for ($i = 1; $i <= 5; $i++) {   
 echo 'Study Guide '.$i.': '. form_upload('studyguide'.$i.'') . "<br />";
 }
//-------------------------------------------------study guide uploader

echo "<br />";

?>    


        <div id="container">
            <p id="add_field"><a href="#"><span>&raquo; Add a Question</span></a></p>
        </div>


    <br /><br />


<?php
echo "<br /><br />";
    echo form_submit('upload', 'Upload');
    echo form_close();
    ?>


</div>






</body>



</html>
4

1 に答える 1

2

HTML仕様。id要素の属性は一意でなければならないと述べています。name多くの異なるオプションをまとめてグループ化するには、属性を単独で使用するだけで十分です。また、なぜその特定の規則を採用したのかはわかりませんが、属性は文字でid終わる必要はなく、属性_の値も文字で終わる必要はありません (そして、なぜそうする必要があるのか​​ わかりません。可読性が損なわれるため)。name[]

これらの要素の値にアクセスするには、jQuery の.val()methodを使用します。

ラジオ ボタンの場合:

var value = $('input:radio[name="true_or_false[]"]:checked','#container').val();

選択要素の場合:

var value = $('select[name="correct_choice[]"]','#container').val();
于 2012-07-31T04:28:41.313 に答える