Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 带有两个st的活动提交按钮_Javascript_Jquery - Fatal编程技术网

Javascript 带有两个st的活动提交按钮

Javascript 带有两个st的活动提交按钮,javascript,jquery,Javascript,Jquery,我有一个验证年龄的输入字段和一个复选框,当点击它时,它会激活表单的#btn激活按钮,我想更改代码,这样#btn激活按钮只有在两者都为真时才会被激活 复选框: $("#ChkTerms").prop('checked', false); $("#ChkTerms").click(function () { if ($('#ChkTerms').is(":checked")) { $("#btn-activation").removeAttr(

我有一个验证年龄的输入字段和一个复选框,当点击它时,它会激活表单的#btn激活按钮,我想更改代码,这样#btn激活按钮只有在两者都为真时才会被激活

复选框:

    $("#ChkTerms").prop('checked', false);
    $("#ChkTerms").click(function () {
        if ($('#ChkTerms').is(":checked")) {
            $("#btn-activation").removeAttr('disabled');
        } else {
            $("#btn-activation").attr("disabled", "disabled");
        }
    });
在这里,它主要检查是否选中了#chkTerms,如果是,则从#btn激活按钮中删除“disabled”属性。不管年龄验证是否为真

年龄验证字段

        if (res != null) {
                birth_date = new Date(res[1], res[2] - 1, res[3]);
                birth_date.setFullYear(birth_date.getFullYear() + 18);
                if (birth_date <= new Date()) {
                    $("#btn-activation").removeAttr('disabled');
                    $("#SocialSecurityNumber").removeClass("input-validation-error");
                } else {
                    $("#SocialSecurityNumber").val("").attr("placeholder", "You need to be 18 years or older.").addClass("input-validation-error");
                    $("#btn-activation").attr("disabled", "disabled");
                }
            } else {
                $("#SocialSecurityNumber").val("").attr("placeholder", "Invalid date").addClass("input-validation-error");
                $("#btn-activation").attr("disabled", "disabled");
            }
    });
if(res!=null){
出生日期=新日期(res[1],res[2]-1,res[3]);
出生日期.setFullYear(出生日期.getFullYear()+18);

if(birth_date您可以创建validate函数,该函数检查所有内容并在每个事件处理程序中调用它,如果正确-更改状态

function validate(res) {
    var birth_date = new Date(res[1], res[2] - 1, res[3]);
    var birth_date.setFullYear(birth_date.getFullYear() + 18);

    return birth_date <= new Date() && $('#ChkTerms').is(":checked");
}

if (validate(res)) {
    $("#btn-activation").removeAttr('disabled');
}
功能验证(res){
var birth_date=新日期(res[1],res[2]-1,res[3]);
变量birth_date.setFullYear(birth_date.getFullYear()+18);

返回出生日期这里有一个简单的解决方案

将年龄验证代码放入函数say
ValidateAge()
,该函数根据结果返回true或false,不会启用和禁用按钮。 并将复选框“单击代码”更改为:

$("#ChkTerms").click(function () {
        if ($('#ChkTerms').is(":checked") && ValidateAge()) {
            $("#btn-activation").removeAttr('disabled');
        } else {
            $("#btn-activation").attr("disabled", "disabled");
        }
    });
更新 我认为用下面的方法稍微修改一下你的代码会对你有用

$( document ).ready(function() {

  $("#ChkTerms").click(function () {
        if ($('#ChkTerms').is(":checked") && ValidateAge()) {
            $("#btn-activation").removeAttr('disabled');
        } else {
            $("#btn-activation").attr("disabled", "disabled");
        }
    });
});

function ValidateAge() {
var ret = false;
   $("#SocialSecurityNumber").attr("placeholder", "YYYY-MM-DD-XXXX").blur(function () {
      var str = $('#SocialSecurityNumber').val();
      var res = /^([1-2]\d{3})\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])\-([0-9]{4})$/.exec(str);
      var todays_date = new Date();
      var birth_date = null;
      if (res != null) {
        birth_date = new Date(res[1], res[2] - 1, res[3]);
        birth_date.setFullYear(birth_date.getFullYear() + 18);
        if (birth_date <= new Date()) {              
            $("#SocialSecurityNumber").removeClass("input-validation-error");
            ret= true;
        } else {
            $("#SocialSecurityNumber").val("").attr("placeholder", "You need to be 18 years or older.").addClass("input-validation-error");
            ret = false;
        }
     } else {
        $("#SocialSecurityNumber").val("").attr("placeholder", "Invalid date").addClass("input-validation-error");
        ret = false;
    }
  });
return ret;
}
$(文档).ready(函数(){
$(“#ChkTerms”)。单击(函数(){
如果($('ChkTerms')是(“:checked”)&&ValidateAge()){
$(“#btn激活”).removeAttr('disabled');
}否则{
$(“btn激活”).attr(“禁用”、“禁用”);
}
});
});
函数ValidateAge(){
var-ret=false;
$(“#社会安全号码”).attr(“占位符”,“YYYY-MM-DD-XXXX”).blur(函数(){
var str=$('#SocialSecurityNumber').val();
var res=/^([1-2]\d{3})\-(0[1-9]| 1[012])\-(0[1-9]|[12][0-9]| 3[01])\-(0-9]{4}$/.exec(str);
var todays_date=新日期();
变量出生日期=空;
如果(res!=null){
出生日期=新日期(res[1],res[2]-1,res[3]);
出生日期.setFullYear(出生日期.getFullYear()+18);

if(出生日期)\你能发布html或fiddle吗?最后将执行哪个活动?
if(res!=null){
什么是
rec
?您好,我尝试将匿名函数包装在函数ValidateAge()周围我编辑了我的帖子。我无法理解你的代码,我正在用一个例子更新我的答案。
$( document ).ready(function() {

  $("#ChkTerms").click(function () {
        if ($('#ChkTerms').is(":checked") && ValidateAge()) {
            $("#btn-activation").removeAttr('disabled');
        } else {
            $("#btn-activation").attr("disabled", "disabled");
        }
    });
});

function ValidateAge() {
var ret = false;
   $("#SocialSecurityNumber").attr("placeholder", "YYYY-MM-DD-XXXX").blur(function () {
      var str = $('#SocialSecurityNumber').val();
      var res = /^([1-2]\d{3})\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])\-([0-9]{4})$/.exec(str);
      var todays_date = new Date();
      var birth_date = null;
      if (res != null) {
        birth_date = new Date(res[1], res[2] - 1, res[3]);
        birth_date.setFullYear(birth_date.getFullYear() + 18);
        if (birth_date <= new Date()) {              
            $("#SocialSecurityNumber").removeClass("input-validation-error");
            ret= true;
        } else {
            $("#SocialSecurityNumber").val("").attr("placeholder", "You need to be 18 years or older.").addClass("input-validation-error");
            ret = false;
        }
     } else {
        $("#SocialSecurityNumber").val("").attr("placeholder", "Invalid date").addClass("input-validation-error");
        ret = false;
    }
  });
return ret;
}