Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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/81.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中所选单选按钮的总和?_Javascript_Jquery_Html_Forms - Fatal编程技术网

如何从不同的表中获取javascript中所选单选按钮的总和?

如何从不同的表中获取javascript中所选单选按钮的总和?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,有两个表:表1和表2。在表1中,有四列。每列都有一些单选按钮。用户只能从每列中选择一个单选按钮。我想在我的代码中设置以下条件: 用户必须从两个表中选择单选按钮。 如果单选按钮的总选择数为5,则用户必须从表1中选择3个单选按钮,从表2中选择2个单选按钮。如果单选按钮的总选择数为4,则用户必须从表1中选择2个单选按钮,从表2中选择2个单选按钮。如果单选按钮的总选择为3,则用户可以从表1中选择2个单选按钮,从表2中选择1个单选按钮,或者用户可以从表1中选择1个单选按钮,从表2中选择2个单选按钮。 用户

有两个表:表1和表2。在表1中,有四列。每列都有一些单选按钮。用户只能从每列中选择一个单选按钮。我想在我的代码中设置以下条件:

用户必须从两个表中选择单选按钮。 如果单选按钮的总选择数为5,则用户必须从表1中选择3个单选按钮,从表2中选择2个单选按钮。如果单选按钮的总选择数为4,则用户必须从表1中选择2个单选按钮,从表2中选择2个单选按钮。如果单选按钮的总选择为3,则用户可以从表1中选择2个单选按钮,从表2中选择1个单选按钮,或者用户可以从表1中选择1个单选按钮,从表2中选择2个单选按钮。 用户不能从表1中选择超过3个单选按钮。 我已经完成了条件1和条件3。如何使用表id在javascript中设置条件2

以下是我对条件1和条件3的代码:

条件1

//tableId sat
$(document).on('click', '#submit', function(event) {
    var $checked = $('#sat').find(":radio:checked");
        if (!$checked.length) {
            alert('You are violating Rule 6. You can not take 3 courses in a day but it is possible if you take 5 courses in a semester..');
            event.stopImmediatePropagation();
            return false;
        }
});

//tableId fri
$(document).on('click', '#submit', function(event) {
    var $checked = $('#fri').find(":radio:checked");
        if (!$checked.length) {
            alert('You are violating Rule 6. You can not take 3 courses in a day but it is possible if you take 5 courses in a semester..');
            event.stopImmediatePropagation();
            return false;
        }
});
条件3

// tableID fri
$("#fri input[type='radio']").change(function(){
    var count = $("#fri input[type='radio']:checked").length;
    if(count>3){
        $(this).prop('checked', false);
      alert("You cannot add more than 3");
    }
});

//table sat
$("#sat input[type='radio']").change(function(){
    var count = $("#sat input[type='radio']:checked").length;
    if(count>3){
        $(this).prop('checked', false);
      alert("You cannot add more than 3");
    }
});

您可以使用以下功能检查条件2中的条件

function validateRadionCount() {
  var radioCountInSat = $('#sat').find(':radio:checked').length;
  var radionCountInFri = $('#fri').find(':radio:checked').length;
  var totalCount = radioCountInSat + radionCountInFri;

  switch(totalCount) {
    case 5:
      if (!(radioCountInSat === 3 && radionCountInFri === 2))
        return false;
      break;
    case 4:
      if (!(radioCountInSat === 2 && radionCountInFri === 2))
        return false;
      break;
    case 3:
      if (!(radioCountInSat === 2 && radionCountInFri === 1) || !(radioCountInSat === 1 && radionCountInFri === 2))
        return false;
      break;
    default:
      return false;
  }

}

您只需将Condition3中第二个表sat的语句设置为count>2,因为您不能在该表中选择两个以上的单选按钮,如您所述。在这种情况下,用户可以在第一个表中选择1-3个rb,在第二个表中选择1-2个哦!由于用户不希望只选择2个选项,您可以向第二个表的submit事件添加一条额外的语句,该语句检查所选选项的总数是否至少为3