3

Thymeleaf Spring は、http: //www.thymeleaf.org/doc/html/Thymeleaf-Spring3.html#checkbox-fields に従って、チェックボックス付きのフォームを使用するときに非表示の入力を作成します。

GET メソッドとしてフォームを送信するときに生成される URL には多くのノイズがあります。

/search?q=stuff&_filters=on&filters=Foo&_filters=on&filters=Bar&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on&_filters=on

見たいURLは

/search?q=stuff&filters=Foo&filters=Bar

どうすればこれを達成できますか?

4

2 に答える 2

1

フォームの送信を傍受し、すべての非表示の「_filters」入力を削除する JavaScript ハックでこれを機能させることができました。

function interceptFilterForm(form){
    var inputs = form.getElementsByTagName("input");

    for (var i = 0; i < inputs.length; ++i) {
        var input = inputs[i];
        if (input.type == "hidden" && input.name == "_filters") {
            input.parentNode.removeChild(input);
        }
    }

    form.submit();
}

フォーム:

<form th:action="@{/search}" method="GET" th:object="${searchForm}" onsubmit="interceptFilterForm(this);">
  <input type="hidden" name="q" th:value="${searchForm.q}" />
  <input type="submit" value="Filter" ></input>

  <li th:each="facet : ${results.facets}" >
    <input type="checkbox" name="filters" th:value="${facet.fullPath}" th:field="*{filters}" />
  </li>  
</form>
于 2013-09-12T15:18:02.553 に答える
1

ポストリクエストを使用できます。問題は、バインディングの情報が必要なことです。そうしないと、チェックボックスがチェックされていないか、表示されていないかを知ることができません。

于 2013-09-13T06:58:46.423 に答える