2

現在のビューに関する値を格納する非表示のフォーム フィールドが複数あります (たとえば、特定の場合、通常は非表示の div が表示されるなど)。フォームがポストバックされたときにレイアウトを復元します。

問題は、たとえそれらが defaultであっても、これらすべての非表示フィールドを常に送信しているため、その過程で多くの不要な URL クラッターが生成されていることです (例: http://www.example.com/view?ab=&ac=&ad=等々)。

URL の乱雑さを最小限に抑えるために、実際にビューに影響を与えている (つまり、指定された既定値がない) フィールドのみを送信したいと思います。

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

4

3 に答える 3

2

jQuery を使用すると、remove()これらのフォーム要素だけを送信することができます。私が考えることができる別の方法は、name attribute.

$('form').bind('submit', function(){
    $(this).children('input').each(function(){
        if(this.value === this.defaultValue)
           $(this).remove();
    });
});
于 2010-07-08T05:56:05.930 に答える
1

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

于 2010-07-08T05:44:13.090 に答える
0

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

于 2010-07-08T05:48:42.500 に答える