我正在进行数据库驱动的测试,并在某些结束标记之前插入“required”,以便用户在至少尝试回答所有问题之前无法提交结果。
以下是两类问题的代码,其中输入类型= radio或text ...
$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>';
文本输入正常。如果用户在回答文本问题之前单击提交按钮,页面会跳到他们未回答的问题,并弹出一条消息:“请填写此字段。”
但如果他们点击提交按钮而不回答输入类型为“radio”的问题,则不会发生任何事情。页面没有提交(就像它应该的那样),但是用户可能不知道为什么因为页面没有跳到未答复的问题,并且没有显示任何消息。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
如果问题得到解答,那不应该是你唯一的检查。
在使用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部分中使用相同类型的检查。