0

重複の可能性:
HTML フォームの入力フィールド値が空の場合に送信されないようにする方法

3 つの入力フォームと送信ボタンがあるとします。

フォーム 1 id: book
フォーム 2 id: music
フォーム 3 id: tv

book フィールドに "Book1" を入力し、music フィールドに "Music1" を入力し、TV フィールドには何も入力しないと、次の URL が取得されます。

http://url/search/?book=Book1&music=Music1&tv=

「tv」フィールドに何もない場合でも、「&tv=」が URL に追加されます。これを止める方法はありますか、またはこれは標準的なブラウザの動作ですか?

4

2 に答える 2

1

これは、この回答で正しく述べられているように、ブラウザの動作によるものです。

このデフォルトの動作を「克服」するには、クライアント側のスクリプトを使用する必要があります。私が考えることができる最も単純で邪魔にならない方法は、これをあなたのページに追加することです:

<script type="text/javascript">
window.onload = function() {
    for (var i = 0; i < document.forms.length; i++) {
        var oForm = document.forms[i];
        oForm.onsubmit = function() {
            for (var j = 0; j < this.elements.length; j++) {
                var element = this.elements[j];
                if (element.type === "text" && element.value === "")
                    element.disabled = true;
            }
        };
    }
};​
</script>

これにより、フォームを送信するときに空のテキストボックスが自動的に無効になり、ブラウザはそれらのテキストボックスに値を送信しなくなります。

ライブテストケース

于 2012-10-16T11:26:15.337 に答える
1

これは標準的で論理的な動作です。「値なし」は「空の値」と同じではありません。

于 2012-10-16T11:12:08.033 に答える