表示および非表示の入力フィールドがいくつかある get フォームがあります。フォームが送信されると、選択されたフィールドとその値が、フォームに配置された順序で URL に追加されます。jQueryを使用してURLのパラメータを並べ替える方法はありますか? 使いやすさの理由から、フォーム自体の要素を並べ替えることができないことに注意してください。
「なぜそれをやりたいのか?」という疑問が生じることはわかっていますが、その理由は、静的ページにアクセスするためです。そのため、パラメーターの順序は、静的ページの URL とまったく同じにする必要があります。たとえば、私のフォームは URL を返します。
http://someurl?names=comm&search=all&type=list
静的ページには次の URL があります。
http://someurl?search=all&type=list&names=comm
簡略化されたフォームの例は次のとおりです。
<form id="search_form" method="get" action="http://www.cbif.gc.ca/pls/pp/ppack.jump" >
<h2>Choose which names you want to be displayed</h2>
<select name="names">
<option value="comm">Common names</option>
<option value="sci">Scientific names</option>
</select>
<h2>Choose how you want to view the results</h2>
<input type="radio" name="search" value="all" id="complete" checked = "checked" />
<label for="complete" id="completeLabel">Complete list</label>
<br/>
<input type="radio" name="p_null" value="house" id="house" />
<label for="house" id="houseLabel">House plants only</label>
<br/>
<input type="radio" name="p_null" value="illust" id="illustrat" />
<label for="illustrat" id="illustratLabel">Plants with Illustrations</label>
<br/>
<input type="hidden" name="type" value="list" />
<input type="submit" value="Submit" />
</form>
$(#search_form).serializeArray() を使用して値を含むフォーム フィールドを取得し、必要に応じて配列を操作できますが、元に戻す方法がわかりません。つまり、シリアル化された値を変更して、送信された URL に自分のパラメータの順序。これが正しい方法であるかどうかさえわからないので、どんな指針でも大歓迎です。