1

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

有什么答案吗?

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>
4

2 回答 2

1

您当前的代码不起作用,因为您的方法会出错:

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>

演示


除了完整性之外并且正如另一个答案中已经提到的那样,如果您想在某个时候阻止提交,请更新表单标签onsubmit="return checkForm()"并在相关位置添加return false;您的checkForm()方法,即:在一个警报之后。

于 2013-02-28T23:22:16.960 回答
0

更改onsubmit="checkForm()"onsubmit="return checkForm()"

false从该函数返回开始。这将阻止刷新页面。

PS:并debugger在函数顶部添加以触发浏览器拥有的任何调试器。

于 2013-02-28T23:21:07.010 回答