1

我在 php 中使用 echo 命令创建了一个表单。它正在正确显示。我有一个 javascript,它检测单击表单的单选按钮并显示与每个按钮组对应的超链接/锚点,这不起作用。

但是,如果我只在没有任何 php 的 html 中创建表单,它就可以完美地工作。请帮忙。

表单创建

echo("<form name ='input' action = 'result.php' method = 'POST'>");
while($row = mysqli_fetch_array($result,MYSQLI_NUM))
{
    echo(($i+1)." ".$row[1]."<br>");
    echo("
    <input type = 'radio' value = $row[2] name = '$i'>$row[2]&nbsp&nbsp&nbsp&nbsp
    <input type = 'radio' value = $row[3] name = '$i'>$row[3]<br>
    <input type = 'radio' value = $row[4] name = '$i'>$row[4]&nbsp&nbsp&nbsp&nbsp
    <input type = 'radio' value = $row[5] name = '$i'>$row[5]&nbsp&nbsp
    <a id='$i' href='javascript:clear($i)'>Reset</a><br>");
    $i++;
    $z[]=$row[6];
}

脚本

$('input:radio').click(function() { 
    var n = $(this).attr('name');
    var k ='#' + n;
    alert($(this).attr('name')); 
    $(k).show(400);
    });
4

3 回答 3

2

您可以尝试更改$('input:radio')$('input[type="radio"]').

尝试这个

$('input[type="radio"]').on('click', function() { 
    var n = $(this).attr('name');
    var k ='#' + n;
    alert($(this).attr('name')); 
    $(k).show(400);
});
于 2013-10-04T15:38:26.240 回答
0
$('body').on('click','input:radio',(function() { 
  var n = $(this).attr('name');
  var k ='#' + n;
  alert($(this).attr('name')); 
  $(k).show(400);
});

单击动态创建的元素时,您需要使用事件委托。

于 2013-10-04T15:38:25.140 回答
0

嗯......你的问题是$row数组应该用大括号,因为你在双引号中

echo("<form name ='input' action = 'result.php' method = 'POST'>");
while($row = mysqli_fetch_array($result,MYSQLI_NUM))
{
    echo(($i+1)." ".$row[1]."<br>");
    echo("
    <input type = 'radio' value = '{$row[2]}' name = '$i'>{$row[2]}&nbsp&nbsp&nbsp&nbsp
    <input type = 'radio' value = '{$row[3]}' name = '$i'>{$row[3]}<br>
    <input type = 'radio' value = '{$row[4]}' name = '$i'>{$row[4]}&nbsp&nbsp&nbsp&nbsp
    <input type = 'radio' value = '{$row[5]}' name = '$i'>{$row[5]}&nbsp&nbsp
    <a id='$i' href='javascript:clear($i)'>Reset</a><br>");
    $i++;
    $z[]=$row[6];
}
于 2013-10-04T15:40:52.107 回答