火水 发表于 2018-12-27 10:14:16

多选框,如果勾选前面几项,在勾选其他项时,非空校验无效

在制作问卷中,最希望得到的数据一般都是其他项,希望对与其他是极少数人的需求,如果满足这些需求,对与一些客户的竞争力会达到百分百。
所以希望在使用多选框时,有其他项,希望填报者在勾选其他项时,可以保证百分百填写其他项。但是目前在使用手机端的多选框时,使用非空校验。如果在其他项被勾选的情况下,同时勾选其他项,可以避开非空校验,直接存入数据库,这样不能达到想要的结果。
有什么办法,在填报者使用多选框的时候,勾选其他项时,必须填写后面的内容,才能提交数据。

Simon.hu 发表于 2018-12-27 14:44:10

这个虽然我们并不觉得很合理,但是会研究一下怎么做哈。

为什么我会觉的不合理呢,原因:如果填写这个表单(问卷)的人想写其他的信息,他自己就会给你填写进去了;如果他乡麻烦不想填写,我们即使提示他了,他一样会给把其他反勾掉,希望您慎重考虑一下这个使用场景。

Simon.hu 发表于 2018-12-27 15:31:19

你可以使用这个代码,来找到这个时机
$('input')
.focusout(function(event) {
   var target = event.target;
   if (typeof (target.value) === 'undefined' || target.value === '') {
      
      var labels = $(target).siblings('label');
      var otherCheck = labels;
      var isChekced = $(otherCheck).find('input').checked;
      if (isChekced) {
            alert('该值不能为空');
      }
   }
});


function checkEmptyOtherText() {
    var checkboxes = $('input');
    for(var i = 0; i < checkboxes.length; i++) {
      var checkbox = checkboxes;
      if (checkbox.checked) {
            var textInput = $(checkbox).parent().siblings(':last');
            if (textInput.val() == '') {
                alert('有空值');
            }
      }
    }
}
页: [1]
查看完整版本: 多选框,如果勾选前面几项,在勾选其他项时,非空校验无效