Javascript 如何使用jQuery验证3个select元素?

Javascript 如何使用jQuery验证3个select元素?,javascript,jquery,validation,Javascript,Jquery,Validation,我正在尝试验证我表格上的3个选定字段,我的申请是曲棍球记分申请,我正在录制记分剧本。A是得分手,B是主助攻,C是次助攻。我有以下验证规则: A不能是空的 B不能等于A或C C不能等于A或B 如果B为空,C必须为空 换句话说,A、AB或ABC是有效的组合,但它们都必须是唯一的。我通过将禁用的引导类/html属性应用于提交按钮来禁用提交按钮 在我的实际代码中,A=awayGoal,B=awayassist,C=awayassist 我目前拥有以下jQuery代码: var awayGoal = $(

我正在尝试验证我表格上的3个选定字段,我的申请是曲棍球记分申请,我正在录制记分剧本。A是得分手,B是主助攻,C是次助攻。我有以下验证规则:

  • A不能是空的
  • B不能等于A或C
  • C不能等于A或B
  • 如果B为空,C必须为空
  • 换句话说,A、AB或ABC是有效的组合,但它们都必须是唯一的。我通过将禁用的引导类/html属性应用于提交按钮来禁用提交按钮

    在我的实际代码中,A=awayGoal,B=awayassist,C=awayassist

    我目前拥有以下jQuery代码:

    var awayGoal = $("#awayGoal");
    var awayPAssist = $("#awayPAssist");
    var awaySAssist = $("#awaySAssist");
    var awayGSubmit = $("#submitAwayScore");
    
    $('#awayScore select').change(function() {
    if(awayGoal.val() != "" && awayPAssist.val() != awayGoal.val() && awayGoal.val() != awaySAssist.val()) {
        if(awayPAssist.val() != "" && awaySAssist.val() != "") {
            awayGSubmit.disableButton();
        }
        awayGSubmit.clearDisabled();
    }
    else {
        awayGSubmit.disableButton();
    }
    });
    
    这允许唯一的A+C组合通过,但相同的A+C组合不会通过。每个select元素都会将游戏中涉及的玩家数量加载到这些元素中。还有第一个
    选项
    ,它是一个静态选项,称为N/a,其代码是:
    N/a
    这允许管理员在主辅助和辅助辅助辅助不存在时拥有空的辅助


    任何帮助都将不胜感激,任何提高效率的方法都是非常受欢迎的,因为我刚刚开始使用jQuery。提前感谢。

    我目前正在开发一个有这么多验证规则的系统。我尝试使用我自己构建的jquery进行验证,但我需要考虑很多事情,还要编写很多代码

    我建议你试试这个。您可以检查它有这么多功能,最有趣的是您可以定义自己的规则或验证。试试看


    祝你好运。

    我目前正在开发一个有这么多验证规则的系统。我尝试使用我自己构建的jquery进行验证,但我需要考虑很多事情,还要编写很多代码

    我建议你试试这个。您可以检查它有这么多功能,最有趣的是您可以定义自己的规则或验证。试试看


    祝你好运。

    因为你只有三个箱子和三个物品,你可以对每种情况进行强制检查,然后或将它们一起检查以确定按钮的禁用状态


    由于您只有三个案例和三个项目,因此您可以对每个条件进行强制检查,然后或将它们一起确定按钮的禁用状态


    您的后端框架是什么?PHP?Asp.NETMVC?PHP,使用CodeigniterIf如果您使用Asp.NETMVC,我会建议您使用万无一失的验证,它使用库在服务器端和客户端进行验证。我确信一定有一个类似的php项目,但遗憾的是,我对这个平台几乎一无所知。祝你好运。你的后端框架是什么?PHP?Asp.NETMVC?PHP,使用CodeigniterIf如果您使用Asp.NETMVC,我会建议您使用万无一失的验证,它使用库在服务器端和客户端进行验证。我确信一定有一个类似的php项目,但遗憾的是,我对这个平台几乎一无所知。祝你好运,太好了,谢谢。在你说我只有三个案子之后,这就更有意义了好的,谢谢。在你说我只有三个案子之后,这就更有意义了O
    var awayGoal = $("#awayGoal");
    var awayPAssist = $("#awayPAssist");
    var awaySAssist = $("#awaySAssist");
    var awayGSubmit = $("#submitAwayScore");
    
    
    $('#awayScore select').change(function() {
      var A = awayGoal.val();
      var B = awayPAssist.val();
      var C = awaySAssist.val();
      console.log(A,B,C);
    
      if(// case 1: only A 
         (A !== "" && B === "" && C === "") ||  
    
         // case 2: only A and B, A != B
         (A !== "" && B !== "" && C === "" && A !== B) || 
    
         // case 3: A, B, C, all unique
         (A !== "" && B !== "" && C !== "" && A !== B && A !== C && B !== C) ) { 
    
      //awayGSubmit.clearDisabled();
      console.log("enable button");
    }
    else {
        //awayGSubmit.disableButton();
        console.log("disable button");
    }
    });