根据用户复选框选择

时间:2016-04-27 01:38:59

标签: javascript html css function cordova

我正在使用JS,HTML和CSS构建一个使用Phonegap的提醒应用程序,屏幕当前有一个“Taken”按钮,当用户点击它时,它将以复选框格式显示用户正在服用的药物列表,因此,用户可以选择他们服用的药物。这是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>

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

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

1 个答案:

答案 0 :(得分:0)

使用您编写的一些相同代码,您可以判断是否已检查所有输入:

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