如果禁用了选项,则停止提交表单

时间:2012-04-23 11:06:49

标签: javascript forms

我对表格不是很好,而且对于应该是一个简单的问题我有很大的困难。

我有一个包含以下内容的表单:

        <select id="values" name="Choice">
            <option value="choose">Please Choose...</option>
            <option value="01">Value 1</option>
            <option value="02">Value 2</option>
        </select>

我想要做的就是在没有选择value-01或value-02但禁用选项不起作用的情况下停止提交表单。

我怎样才能做到这一点?

更新:

我已经使用javascript来检查表单,但这似乎不起作用。

function submitForm() {
        if (formObj.Choice.value == '') {
            alert("Please select a value");
            return false;
        }
        return true;
    }

更新2:回答@ h4b0问题:

<input type="submit" value="Search" class="screen-reader-text button cf" name="SubmitButton" onclick="return submitForm();">

2 个答案:

答案 0 :(得分:1)

在表单标记中,使用类似

的内容
<form name='myForm' method='post' id='myForm' onsubmit='return submitForm()'>
....
</form>

提交表单时,它将运行该JavaScript函数,然后将结果的值返回给表单。如果是真的,它会发布数据。如果结果为false,则会取消提交。

您真的很接近提交按钮中的内容,但将onclick更改为onsubmit,并将事件绑定移动到表单标记。

[编辑]

您的表单永远不会返回false,因为您检查select中的值。由于没有选项具有value ='',因此if语句将永远不会计算为true并将false返回给函数调用者。

答案 1 :(得分:0)

试试这个,在提交表单时调用一个方法来通过selectedIndex检查你的条件并返回false来取消提交。

<script>
function validateMe(){
    var x=document.getElementById("Choice").selectedIndex;
    var y=document.getElementById("Choice").options;
    if(y[x] != "01"|| y[x] != "02"){
       return false;
    }
    return true;
}
</script>
<form name="YourForm" id ="YourForm" onSubmit="return validateMe()">
<select id="values" name="Choice" id="Choice">
        <option value="choose">Please Choose...</option>
        <option value="01">Value 1</option>
        <option value="02">Value 2</option>
    </select>

<input type="submit" value="Search" class="screen-reader-text button cf" name="SubmitButton">

</form>