如何强制用户选择下拉值?

时间:2015-11-04 01:52:37

标签: javascript jquery

我有两个问题:这是我的代码:

$(document).ready(function(){
 $("#diabetestype").closest("div").hide();
 $("#diabetes").on("change", function(){
   var v = $(this).val();
   if(v=="positive"){
      $("#diabetestype").closest("div").show();
   }else{
     $("#diabetestype").closest("div").hide();
   } 
 });
});
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>


<label for="diabetes">Diabetes:</label>
<select id="diabetes" name="diabetes">
<option value="negative">Negative</option>
<option value="positive">Positive</option>
</select>



<div>
<label for="diabetestype">Diabetes Type:</label>
<select id="diabetestype" name="diabetestype">
<option value="negative">Please select Diabetes Type</option>
<option value="insulin">Insulin</option>
<option value="drug">Drug</option>
</select>
</div>

糖尿病 阴性时,糖尿病类型阴性,所以没关系。

问题是当糖尿病 阳性时,如果用户仍然糖尿病类型 否定 不会改变价值。

  

当糖尿病为阳性时,如何强迫用户选择价值?要么   我们可以在糖尿病阳性时设定误差值吗?

     

如果选择胰岛素作为选择的diabetestype中的值,如何从表中检索数据?

例如:如果糖尿病是阳性且糖尿病类型是胰岛素,当我们要再次改变它时,仍然隐藏糖尿病类型并且没有选择胰岛素值。我们需要再次从正变为负,从​​负变为正,直到第二次下降,仍然((diabetestype))被选为值而不是胰岛素

1 个答案:

答案 0 :(得分:0)

有两种方法可以满足您的第一个要求。

  1. 当使用以下代码将糖尿病选为阳性时,只需删除阴性选项,因此将第一个选项作为默认糖尿病类型

       if(v=="positive"){
          $("#diabetestype option[value='negative']").remove();
          $("#diabetestype").closest("div").show();
       }
    
  2. 并隐藏在您的其他情况下,您应该添加此$("#diabetestype").val('negative');

    或 2.通过粗略的模型,这不是一个更好的用户体验,如下面

    $("#diabetes").on("change", function(){
               var v = $(this).val();
               if(v=="positive"){
                  $("#diabetestype").focus();
                  $("#diabetestype").closest("div").show();
               }else{
                 $("#diabetestype").closest("div").hide();
                 $("#diabetestype").val('negative');
               } 
       });
        $("#diabetestype").blur(function(){
                   var v = $(this).val();
                   if(v=="negative" && $("#diabetes").val() == 'positive'){
                      event.preventDefault();
                      alert('Select Diabetes Type');
                      $("#diabetestype").focus();
                   } 
           });