【问题标题】:Issues with javascript validation of radio buttons on php formphp表单上单选按钮的javascript验证问题
【发布时间】:2012-09-19 17:14:38
【问题描述】:

这是包含带有单选按钮的表单的 php 文件的代码:

<?php
    while($r7 = mysql_fetch_array($rt3)){
        $name=$r7["name"];  
        $s=$r7["question"]; 

        echo "
        <div>$s</div>

        <form name='Tester' method='post' onSubmit='return RegValidate(this);' action='quest.php' >
        <input type='radio' name='w1' value='1'>1<br>
        <input type='radio' name='w1' value='2'>2<br>
        <input type='radio' name='w1' value='3'>3<br>



        ";
        }
        echo" <input  name='Submit' value='Tester' type='submit' />
        </form>";

?>

$name 和 $q 是使用 mysql 查询从数据库中派生的。这工作正常。 到目前为止,我使用了以下 javascript 代码:

function RegValidate(Tester) 
 {

 if($('#w1').not(':checked'))
{
   alert('Radio not checked');
   return false;
}

}

但是使用此代码,我继续收到错误消息,即使我选择了单选按钮,我也无法继续。

while 循环产生几组单选按钮,如 $q,从数据库中获取问题并将其与 3 个单选按钮一起发布到页面上。每个问题 $q 都有上面的 3 个单选按钮,这就是 $name 的原因。

如何使用 javascript 验证此表单。注意。该表单将仅包含单选按钮。

【问题讨论】:

    标签: php javascript mysql validation


    【解决方案1】:

    您有一个错误,您的输入没有 ID 或 CLASS,因此添加到所有输入单选 class='w1' 并尝试下一个代码:

     if ($(".w1 option:selected").length<1)
         alert ('nothing selected');
    

    也可以看看这个帖子:Check if option is selected with jQuery, if not select a default

    【讨论】:

    • 同样的事情还在继续发生。即使我选择了一个按钮,我也会不断收到错误消息。这是因为它在 php while 循环中吗?
    • PHP 是服务器端的,这个检查是客户端的。
    【解决方案2】:

    做这些事情:

          <input type='radio' class='w1' name='w1' value='1'>1<br>
          <input type='radio' class='w1' name='w1' value='2'>2<br>
          <input type='radio' class='w1' name='w1' value='3'>3<br>
    

    在js中:

    最新编辑:

      if ( $(':radio[class=w1]').attr('checked') != 'checked' ) {
        alert('Radio not checked');
    
    }
    

    【讨论】:

    • 很抱歉,但这似乎无法解决问题。我认为这可能是因为表单位于 php while 循环中。我真的不知道如何解决这个问题。
    • 这仍然会出现同样的问题。即使我已选择,错误消息也会不断出现。 while 循环产生几组单选按钮,如 $q,从数据库中获取问题并将其与 3 个单选按钮一起发布到页面上。
    【解决方案3】:
    function RegValidate(Tester) {
        if ($(":radio[name=w1]:checked").toArray().length == 0) {
            alert('nothing selected');
            return false;
        }
    }​
    

    FIDDLE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-03
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 2015-07-18
      • 2018-02-19
      • 2021-01-24
      相关资源
      最近更新 更多