0

私はフォームがあまり得意ではなく、単純な問題であるべきものに非常に苦労しています。

次のフォームがあります。

        <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();">
4

2 に答える 2

1

フォームタグでは、次のようなものを使用します

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

フォームが送信されると、その JavaScript 関数が実行され、結果の値がフォームに返されます。true の場合、データを投稿します。結果が false の場合、送信はキャンセルされます。

送信ボタンにあるものに非常に近いですが、onclick を onsubmit に変更し、イベント バインディングを form タグに移動します。

[編集]

選択した値をチェックする方法で、フォームが false を返すことはありません。どのオプションにも value='' がないため、if ステートメントが true と評価されることはなく、関数の呼び出し元に false が返されます。

于 2012-04-23T12:34:08.307 に答える
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>
于 2012-04-23T12:35:44.390 に答える