2017-03-17 86 views
0

我有一个会议注册,用户可以选择在两天内注册研讨会。他们不能在第二天选择同一个车间。然而,每个研讨会都有40名参与者的软限制,所以当注册加载时,有一个查询要获得哪些研讨会有剩余席位。下面禁用基于另一选择以及db数据的选择选项

代码:

<select name="workshop1" required="required" id="workshop1"> 
    <option disabled selected value=""> -- select an option -- </option> 
    <option value=”wkshp1”>Workshop name</option> 
    <option value=”wkshp2”>Workshop name</option> 
    <option value=”wkshp3”>Workshop name</option> 
    <option value=”wkshp4”>Workshop name</option> 
    <option value=”wkshp5”>Workshop name</option> 
    <option value=”wkshp6”>Workshop name</option> 
</select> 
<select name="workshop1" required="required" id="workshop2"> 
    <option disabled selected value=""> -- select an option -- </option> 
    <option value=”wkshp1”>Workshop name</option> 
    <option value=”wkshp2”>Workshop name</option> 
    <option value=”wkshp3”>Workshop name</option> 
    <option value=”wkshp4”>Workshop name</option> 
    <option value=”wkshp5”>Workshop name</option> 
    <option value=”wkshp6”>Workshop name</option> 
</select> 

我使用的是从堆栈溢出此代码完美。

$(document).ready(function() { 
    $("#workshop1").change(function() { 
     $("select[name=workshop2] option").removeAttr("disabled"); 
     var workshopName = $("select[name=workshop1]").val(); 
     $("select[name=workshop2] option[value=" + workshopName + "]").attr("disabled", "disabled"); 
    }); 
}); 

然而,尽管我可以在页面加载车间,充满禁用,jQuery代码上面会重新启用已禁用我的选项(车间满)在车间2。如何遍历所有选项并排除已启用的全部选项。第1天的讲习班相同。&第2天。

+0

'$(“select [name = workshop2] option”)。removeAttr(“disabled”);'重新启用所有选项。你为什么需要这个代码行? – sandrooco

+0

造成这种情况的原因是,如果我为第1天选择了workshop2,那么第2天的研讨会1将被禁用。但是在完成注册之前,我改变了主意并选择了workshop3。无论如何,我想我已经有了解决方案。现在进行测试。 –

回答

0

好吧设法通过以下操作来解决这个问题。 由于完整的研讨会输出了空白值,即。 ,脚本可以检查这个。如果用户在第一天选择了workshop1,那么第二天的workshop2可以将第一天修改为workshop1,我在第二个工作室中添加了一张支票。

$(document).ready(function(){ 
     $("#workshop1").change(function(){ 
      $("#workshop2 option").each(function(){ 
       if ($(this)["0"].value) { 
        $(this).removeAttr("disabled"); 
       } 
      });    
      $("select[name=workshop2] option[value=" + $("select[name=workshop1]").val() + "]").attr("disabled", "disabled"); 
     }); 
     $("#workshop2").change(function(){ 
      $("#workshop1 option").each(function(){ 
       if ($(this)["0"].value) { 
        $(this).removeAttr("disabled"); 
       } 
      });  
      $("select[name=workshop1] option[value=" + $("select[name=workshop2]").val() + "]").attr("disabled", "disabled"); 
     }); 
    }); 
相关问题