Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 HTML5 setCustomValidation解除绑定问题_Javascript_Jquery_Html_Validation_Html5 Validation - Fatal编程技术网

Javascript HTML5 setCustomValidation解除绑定问题

Javascript HTML5 setCustomValidation解除绑定问题,javascript,jquery,html,validation,html5-validation,Javascript,Jquery,Html,Validation,Html5 Validation,我使用内置的HTML5验证方法来验证表单中的出生日期 表单有三个选择列表元素, 用户日期 用户月 用户年份 由于用户必须选择一个有效的选项,因此这三个元素都被作为“必需”进行验证 现在,在用户选择了所有三个选项并且HTML5验证至少选择了一个选项之后,我想检查闰年的日期,同时确保用户没有选择像1998年2月31日这样的东西 $('#form-signup-next').submit(function(){ if($('#user_dob_mon

我使用内置的HTML5验证方法来验证表单中的出生日期

表单有三个选择列表元素, 用户日期 用户月 用户年份

由于用户必须选择一个有效的选项,因此这三个元素都被作为“必需”进行验证

现在,在用户选择了所有三个选项并且HTML5验证至少选择了一个选项之后,我想检查闰年的日期,同时确保用户没有选择像1998年2月31日这样的东西

$('#form-signup-next').submit(function(){                       
   if($('#user_dob_month').val()=='2' && $('#user_dob_date').val()>29 ){
        var obj=$('#user_dob_date')[0];
        alert($('#user_dob_month').val());
        obj.setCustomValidity('Invalid Date!');         
   }else{
        var obj=$('#user_dob_date')[0];
        obj.setCustomValidity('');
    }
    return false;
    });
->单击提交时不显示自定义消息。如果该按钮被单击两次,则会发生这种情况。首先单击它,设置消息但不显示,然后单击显示错误

->如果在错误选择和显示自定义消息后,如果日期固定,并且我们尝试提交表单,它仍然会抛出错误:(


请在这方面帮助我。提前感谢:)

您不应该在提交表单时这样做,因为一旦设置了
setCustomValidity
值,它将不允许提交表单,除非验证错误值得到清除,并且在您的代码中,问题是您正在清除提交时的错误值。这就是为什么即使在下次运行时更正了值,也会出现验证错误的原因

有关详细信息,请查看此链接

好的,现在你可以这样做了。通过检查并设置下拉值更改事件的错误消息

$('#user_dob_date,#user_dob_month').on('change',function(){
    if($('#user_dob_month').val()=='2' && $('#user_dob_date').val()>29){
    $('#user_dob_date')[0].setCustomValidity('Invalid Date!');
    }
    else{
    $('#user_dob_date')[0].setCustomValidity('');
    }
  });
我检查了这个&它工作正常

因此,当用户选择错误的组合并按下submit按钮时,将显示错误消息


请在提交表单时尝试此操作,因为一旦设置了
setCustomValidity
值,它将不允许提交表单,除非验证错误值得到清除,并且在您的代码中,问题是您正在清除提交时的错误值。这就是为什么即使在下次运行时更正了值,也会出现验证错误的原因

有关详细信息,请查看此链接

好的,现在你可以这样做了。通过检查并设置下拉值更改事件的错误消息

$('#user_dob_date,#user_dob_month').on('change',function(){
    if($('#user_dob_month').val()=='2' && $('#user_dob_date').val()>29){
    $('#user_dob_date')[0].setCustomValidity('Invalid Date!');
    }
    else{
    $('#user_dob_date')[0].setCustomValidity('');
    }
  });
我检查了这个&它工作正常

因此,当用户选择错误的组合并按下submit按钮时,将显示错误消息

试试这个