我正在做一个数据库驱动的测试,并在一些结束标签之前插入了"必需",以便用户在至少尝试回答所有问题之前无法提交结果。
下面是两种类型的问题的代码,其中输入类型 = 无线电或文本...
$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 部分中具有相同类型的检查。