0

请帮助我将所选动态创建的单选按钮的值显示到 div 中

这是我的代码...请告诉我我的代码出了什么问题...谢谢

<script type="text/javascript">
    var div = $("#show_ans");
    $("input[type='radio']").click(function() {
        var radioVal = $(this).value;
        div.html("radioVal");
    });
</script>

html代码是

$i=0
$sql = mysql_query("SELECT * FROM `question_bank` where `test_name`='$tname' 
AND`posted_by`='$fac'");
if (mysql_num_rows($sql) > 0) 
 while($row2 = mysql_fetch_array($sql))
  {
   if($i<=$maxq){
       ....
       ....
        <table>
     <tr><td colspan=3><?php echo $row2['question'];?></td>
         <td><ul class="menu">
             <li><div id="show_ans" style="display:none"></div>
</li></ul>
         </td>
     </tr>
     <tr><td style="width:250px" align=left>
            <input id="r1" type="radio" name="<?php echo "s_option".$i;?>" value="<?php echo $row2['choice_a'];?>" ><?php echo $row2['choice_a'];?>
         </td>
         <td style="width:250px" align=left>
            <input id="r1" type="radio" name="<?php echo "s_option".$i;?>" value="<?php echo $row2['choice_b'];?>" ><?php echo $row2['choice_b'];?>
         </td>
         <td style="width:250px" align=left>
            <input id="r1" type="radio" name="<?php echo "s_option".$i;?>" value="<?php echo $row2['choice_c'];?>" ><?php echo $row2['choice_c'];?>
         </td>
         <td style="width:250px" align=left>
            <input id="r1" type="radio" name="<?php echo "s_option".$i;?>" value="<?php echo $row2['choice_d'];?>" ><?php echo $row2['choice_d'];?>
         </td>
     </tr>
    </table>
....
....

如果单击单选按钮,则应在相应的 div 上生成值,并且应在所有循环重复中重复该值。请指导我提前谢谢。

4

3 回答 3

0

尝试更换

div.Html("radioVal");

div.html(radioVal);

并且如果您可以将事件更改为更改(但它是可选的和建议的)

$("input[type='radio']").click(function() {

并将您的脚本放入 document.ready 中

<script type="text/javascript">
    $(document).ready(function(){        
        var my_div = $("#show_ans");         //change div to my_div
        $("input[type='radio']").change(function() {
           var radioVal = $(this).val();     //This is not value it is val();
           my_div.html(radioVal);
        });
    });
</script>
于 2013-06-06T05:45:42.510 回答
0

您的正确代码是:

// html代码

<table>
    <tr>
        <td colspan=3>demo</td>
        <td>
            <ul class="menu">
                <li>
                    <div id="show_ans" style="display:none"></div>
                </li>
            </ul>
        </td>
    </tr>
    <tr>
        <td style="width:250px" align=left>
            <input id="r1" type="radio" name="k" value="5" />5</td>
        <td style="width:250px" align=left>
            <input id="r1" type="radio" name="k" value="6" />6</td>
        <td style="width:250px" align=left>
            <input id="r1" type="radio" name="k" value="7" />7</td>
        <td style="width:250px" align=left>
            <input id="r1" type="radio" name="k" value="8" />8</td>
    </tr>
</table>

//java脚本代码

$(document).ready(function () {
    var div = $("#show_ans");
    $("input[type='radio']").click(function () {
        var radioVal = $(this).val();
        div.html(radioVal);
    });
});

笔记:

你正在使用'<div id="show_ans" style="display:none"></div>'然后告诉我如果 div 已经不显示,你怎么能看到它。如果您要检查,Firebug您可以在“show_ans” div 中看到您的单选值。祝你好运!!:)

于 2013-06-06T07:22:19.860 回答
-1

更正

代替

<li><div id="show_ans" style="display:none"></div>

<li><div class="show_ans" style="display:none"></div>

代替

var div = $("#show_ans"); 
$("input[type='radio']").click(function() {
var radioVal = $(this).value;
div.Html("radioVal");

var div = $(".show_ans"); 
$("input[type='radio']").click(function() {
var radioVal = $(this).value;
div.html(radioVal);

while上面的变化是因为你在循环中重复你自己,多个 dom 具有相同的 id,这是不允许的。因此转换DIV idclass并查看jQuery代码更新。

还要确保添加.show()以删除div display:none;内联,以便在事件触发css时对用户可见。click

例子

div.show();

评论答案

$("input[type='radio']").click(function()
{
    var div = $(this).closest('table').find(".show_ans");
    var radioVal = $(this).val();
    div.html(radioVal).show();
});

我所做的是选择最接近parent table和在我们find特定的内部,DOM show_ans div class然后replace html显示它。

于 2013-06-06T05:52:17.987 回答