我正在尝试创建一个脚本,该脚本将提取提交的输入并使用它根据选择的内容发送警报,尽管每当执行此操作时,它似乎都不对应。

有什么答案吗?

Javascript:

<script language="Javascript" type="text/javascript">
    function checkForm() {
        alert(form.option.value);
        if (form.option.value == "one") {
            alert("Test 1");
        } else if (form.option.value == "two") {
            alert("Test 2");
        } else {
            alert("Test 3");
        }
    }
</script>


HTML:

<form onsubmit="checkForm()">
    <select>
        <option value="one">One</option>
        <option value="two">Two</option>
        <option value="three">Three</option>
    </select>
    <input type="submit" name="option">
</form>

最佳答案

您当前的代码无法正常工作,原因是您的方法会出现错误:

Uncaught ReferenceError: form is not defined


您需要获取正确元素的句柄。 form不仅会存在,而且option.value也不正确。

获取相关元素,如下所示:

<script language="Javascript" type="text/javascript">
    function checkForm() {
        var form = document.forms[0];
        var selectElement = form.querySelector('select');
        var selectedValue = selectElement.value;

        alert(selectedValue);
        if (selectedValue == "one") {
            alert("Test 1");
        } else if (selectedValue == "two") {
            alert("Test 2");
        } else {
            alert("Test 3");
        }
    }
</script>




DEMO



为了完整起见,并且已经在另一个答案中提到,如果您要阻止提交,请将表单标签更新为onsubmit="return checkForm()"并在相关位置的return false;方法中添加checkForm(),即:警报。

07-22 06:16