所需的响应不显示输入 = 无线电的消息


Required response doesn't display message where input = radio

我正在做一个数据库驱动的测试,并在一些结束标签之前插入了"必需",以便用户在至少尝试回答所有问题之前无法提交结果。

下面是两种类型的问题的代码,其中输入类型 = 无线电或文本...

$QA = '<div class="Answer">
      <label class="Wide" for="q'.$QID.'-'.$Value.'"><div    class="Radio"><input type="radio" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" style="display: none;" required> '.$Value.'.  '.$QA.'</div></label></div>';

文本输入...

$QA = '<div class="Answer">
      <label for="q'.$QID.'-'.$Value.'"><div class="Multiple-Choice"> <input type="text" name="q'.$QID.'[]" id="q'.$QID.'-'.$Value.'" value=""  required></div></label></div>';

文本输入工作正常。如果用户在回答文本问题之前单击提交按钮,页面将跳转到他们未回答的问题,并弹出一条消息:"请填写此字段。

但是,如果他们单击提交按钮而不回答输入类型为"无线电"的问题,则不会发生任何事情。页面没有提交(就像它应该提交的那样),但用户可能不知道原因,因为页面不会跳到未回答的问题,并且不显示任何消息。

有谁知道如何解决这个问题?

这不应该是你唯一的检查,如果一个问题已经得到回答。

在使用jquery发送数据之前,您还应该遍历所有字段并检查某个字段是否没有值,并将用户返回到该字段并显示错误消息。

之后,您还应该检查 php 部分中的每个字段,并在 ajax 加载时向用户返回错误。

用户可以删除前端检查,但不能跳过后端检查。

查询循环和检查示例

var inputs = $('#myForm :input');
inputs.each(function(index, value) {
    if ($(value).val() == '') { //check if the input is empty 
        //return the error
    }
});

你明白了。您应该在 php 部分中具有相同类型的检查。