条件付きでフォームフィールドを送信からスキップし、URLクラッタを減らす

StackOverflow https://stackoverflow.com/questions/3200919

質問

私は現在のビューに関する値を格納する複数の隠しフォームフィールド(例えば、特定の、通常は隠されたDIVが表示されている場合など)を復元してレイアウトを復元します。

問題は、を常に提出していても、、プロセスで必要な不要なURLクラッタを生成しても常にすべての隠れたフィールドを送信することです(例: http://www.example.com/view ?ab=&ac=&ad= など)。

URLクラッタが最小になるように、実際にビューに影響を与えるフィールド(つまり、指定されたデフォルト値を持たない)のフィールドをむしろ送信したい(つまり、指定されたデフォルト値はありません)。

入力の挿入/挿入を手動で削除しようとしました。これを行うためのより良い方法はありますか?

役に立ちましたか?

解決

それらを無効にしてみてください -
「無効になっているコントロールは成功できません」 - http://www.w3.org/TR / HTML401 / INTERACT / FORMS.HTML#H-17.13.2

他のヒント

jQueryを使用すると、送信前にremove()のフォーム要素を作成することができます。私が考えることができるもう一つの方法は、name attributeを削除することです。

$('form').bind('submit', function(){
    $(this).children('input').each(function(){
        if(this.value === this.defaultValue)
           $(this).remove();
    });
});
.

URLにこれらのオプションを保持する理由がない限り、なぜそれらの値をCookieに保存しないのですか?実際、これは多くのサイトで行われます。もっと注意したい場合は、ディスプレイオプションを各ユーザーのデータベースに保存できますが、それが選択です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top