单击表单子元素时弹出窗体关闭

时间:2018-06-18 10:38:51

标签: javascript html

我创建了一个简单的弹出窗体,当窗体外发生单击事件时窗体关闭;但是,单击任何表单子元素也会关闭弹出窗口。我是否需要将标签和输入元素添加到' if' JS函数中的语句?

HTML

if(x==="john"||"micheal"||"daisy"||"smith")

JS

    <button id="contactButton" onclick="show()">Contact</button>
    <div id="main">

    <div id="formDiv">
        <form action="" id="form" method="POST">
            <label id="name">Name:</label>
            <input type="text" name="name"><br>
            <label>Email:</label>
            <input type="text" name="name"> <br>
            <input type="submit" value="Submit">
        </form>
    </div>
    </div>

2 个答案:

答案 0 :(得分:0)

  

我是否需要将标签和输入元素添加到JS函数中的'if'语句?

是的,但解决方案的一般实现是获取目标,然后递归检查parentNode,直到找到document.getElementById("form"))或父母用完为止。

答案 1 :(得分:0)

试试这个;

function hide(e) {
    if (e.closest('#form')) {
        console.log("inside");
        return;
    } else {
        document.getElementById("main").style.display="none";
        console.log("outside");
    }
}