Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP表单验证(必填字段)_Javascript_Php_Jquery_Forms - Fatal编程技术网

Javascript PHP表单验证(必填字段)

Javascript PHP表单验证(必填字段),javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,请阅读下面的编辑2 我正在动态生成一个测验表单。这些问题和答案来自MySQL数据库。表单上的控件类型有复选框、单选按钮和文本框 我的验证需要: 1) 检查是否为所有相关问题选择了单选按钮(默认情况下,未选择任何单选按钮)。 2) 检查所有相关问题是否至少选中一个复选框。 3) 检查文本框中是否输入了任何内容 我找到了几个关于如何执行此操作的示例,但由于我是动态生成表单的,因此遇到了一个问题 我用于表单生成的算法是: Loop to get Questions from Database {

请阅读下面的编辑2

我正在动态生成一个测验表单。这些问题和答案来自MySQL数据库。表单上的控件类型有复选框、单选按钮和文本框

我的验证需要: 1) 检查是否为所有相关问题选择了单选按钮(默认情况下,未选择任何单选按钮)。 2) 检查所有相关问题是否至少选中一个复选框。 3) 检查文本框中是否输入了任何内容

我找到了几个关于如何执行此操作的示例,但由于我是动态生成表单的,因此遇到了一个问题

我用于表单生成的算法是:

Loop to get Questions from Database
{
  Store "Type" of Question in variable X (Type = Single Choice 'c' (Radio button), Multi Choice 'm' (Checkbox), User Entry 'u' (Textbox)

  Loop to get Answers for current Question
   {
     Switch(X)
     {
       case 'c'
         Load each answer into separate radio buttons, Name = Question number.
       break
       case 'm'
         Load each answer into separate checkboxes, Name = Question number.
       break
       case 'u'
         Place textbox, Name = Question number.
       break
      }
    }
}
然后将数据提交并存储在MySQL中

我试图将POST中的所有表单元素加载到一个数组中,并检查它们是否有值,但是我随后意识到这将检查每个元素是否有值,这不是我要查找的

最好的方法是什么?非常感谢任何指向正确方向的指针

编辑2:

我使用jQuery.validate解决了单选按钮和文本框的这个问题。我以page的源代码为例。但是,它不适用于复选框!(我甚至将他们用于复选框的源代码直接复制到我的页面中,但仍然不起作用。仅突出显示第一个复选框,单击其他复选框不会删除验证。)

这是我从他的网站上复制的代码片段

<fieldset>
            <legend>Spam</legend>
            <label for="spam_email">
                <input type="checkbox" class="checkbox" id="spam_email" value="email" name="spam[]" required minlength="2">
                Spam via E-Mail
            </label>
            <label for="spam_phone">
                <input type="checkbox" class="checkbox" id="spam_phone" value="phone" name="spam[]">
                Spam via Phone
            </label>
            <label for="spam_mail">
                <input type="checkbox" class="checkbox" id="spam_mail" value="mail" name="spam[]">
                Spam via Mail
            </label>
            <label for="spam[]" class="error">Please select at least two types of spam.</label>
        </fieldset>

垃圾邮件
通过电子邮件发送垃圾邮件
通过电话发送垃圾邮件
通过邮件发送垃圾邮件
请至少选择两种类型的垃圾邮件。

我在这里遗漏了什么吗?还有什么我应该复制的吗?(我的页面中也包含了这两个包含的文件)

如果您正在使用jQuery,请尝试以下方法(适用于收音机和复选框):


看一看。当然是一个更好的选项,然后通过警报显示错误消息。这是非常有用的,谢谢!但正如我所说,我正在寻找有关如何使它的指导,以便在一组4个选项按钮中,选择任何一个,等等。我将尝试在我的外部循环中实现这一点,并看看我能用它做些什么!
var isSpamValid = $('input[name=spam\\[\\]]:checked').length > 0;