为什么不能正确读取用户输入和选择?

时间:2019-08-06 18:48:40

标签: javascript html debugging

我一生无法理解我在这里做错了什么。我仅使用香草JS,试图检查用户是否在文本字段中输入了有效数字,然后从下拉菜单中选择一个选项。

如果它们都是无效的,应该出现一个错误。 如果年龄有效且下拉菜单项无效,则会出现错误。
如果下拉菜单项无效且年龄有效,则将出现错误。

正如我们所说的,如果我输入一个有效值并从下拉菜单中选择一个项目,则会得到insert a valid number and choose an option from the dropdown!,这是完全错误的。

我在做什么错了?

这是我的HTML:

<form>
            <div>
                <label>Number
                    <input type="text" name="number">
                </label>
            </div>
            <div>
                <label>My Menu
                    <select name="menu">
                        <option value="">---</option>
                        <option value="item1">Item 1</option>
                        <option value="item2">Item 2</option>
                        <option value="item3">Item 3</option>
                    </select>
                </label>
            </div>
            <div>
                <button class="add">add</button>
            </div>
         </form>

这是我的JS:

var addButton = document.getElementsByTagName("button")[0];
addButton.type = "button";

var numInput = +document.getElementsByTagName("input")[0].value;

var select = document.getElementsByTagName("select")[0].selectedIndex == "0";

function validation() {
    if(numInput < 0 || numInput === 0 || isNaN(numInput) && select) {
        alert("insert a valid number and choose an option from the dropdown!");
    } else {
        alert("valid number accepted!");
    }

    if(select) {
        alert("choose an option from the dropdown!");
    } else {
        alert("dropdown menu option chosen!");
    }
}

addButton.onclick = function() {
    validation();
};

1 个答案:

答案 0 :(得分:1)

您需要获取运行=[Task Completion Date] 时要检查的值

validation()