2016-04-27 131 views
0

我正在用Phonegap使用JS,HTML和CSS构建一个提醒应用程序,屏幕当前有一个“已采取”按钮,当用户单击它时,它将显示用户使用复选框格式的药物,因此用户可以选择他们服用的药物。这里的JS代码:基于用户复选框的选择显示或隐藏下拉框

function show(){ 
     document.getElementById("zero").style.display = "inline-block"; 
     document.getElementById("aa").style.display = "inline-block"; 
    } 

function hide() { 
     document.getElementById("zero").style.display = "none"; 
     document.getElementById("aa").style.display = "none"; 
    } 

function validate() { 
     var msg = [];  
     [].forEach.call(document.querySelectorAll('input[type="checkbox"]:not(:checked)'), function(elem, index) { 
     msg.push(elem.name); 
     }); 
     alert(msg.length ? 'Why didnt you take ' + msg.join(' and ') : 'Well done you have taken all medications!'); 
    } 

function showDiv(){ 
     document.getElementById('welcomeDiv').style.display = "block"; 
    } 

而这里的HTML:当用户选择的原因,为什么他们不服药的至少一个,警报就会所以现在

<div class="inner" id=text><button onClick="show()">Taken</button> 
</div> 
<div id=aa style="display:none"> 
     <form> 
      <input type="checkbox" name="Medication One" value="one">Supplement One<br> 
      <input type="checkbox" name="Medication Two" value="two">Supplement Two<br> 
      <input type="checkbox" name="Medication Three" value="three">Supplement Three<br> 

       <div id="welcomeDiv" style="display:none;" class="dropdown" title="Basic dialog"> 
        <select> 
         <option value="" disabled="disabled" selected="selected">Please choose one</option> 
         <option value="forget">Forget to take</option> 
         <option value="notfeeling">Not feeling like taking it</option> 
         <option value="sideeffect">Worried about side-effects</option> 
         <option value="sideeffect">Run out of supplements</option> 
         <option value="others">Others</option> 
        </select> 
         <input type="submit" onClick="hide()" value="Submit"> 
       </div> 
      <input id=xbutton type="button" onClick="this.style.display='none';validate();showDiv()" value="Submit"> 
     </form> 

    </div> 

显示“你为什么不服用(药物名称)/和(药物名称)?”并且会显示一个允许用户选择原因的下拉框。然而,我想要做的是,如果用户选中了所有复选框(意味着他们已经服用了所有药物),那么下拉框不会出现,只是显示“干得好,你已服用所有药物”的警报。

我不确定如何将它集成到我的代码中,任何帮助将不胜感激。

回答

0

随着一些相同的代码你写的,如果所有的输入检查你可以告诉:

if(document.querySelectorAll('input[type="checkbox"]:not(:checked)').length==0) { 
    alert("well done"); 
}