3

私はいくつかのチェックボックスを持っています。それらのいずれかがクリック/チェックされ、検索ボタンがクリックされると、それらの値を取得してクエリ文字列として URL に渡し、渡されたクエリ値に一致する結果を返すページを更新します。このように: mysite.com/result.aspx?k="病院" OR "オフィス" OR "緊急"

「k=」の後の値を取得できます。「病院」または「オフィス」または「緊急」をキャプチャして変数に保存しました。ページがリロードされ、コントロールの以前の状態が忘れられた後、これらの値に基づいてチェックボックスのチェック状態をリセットする必要があります。これ以上動けなかった。誰かが私を助けることができますか?

  var checkedOnes=decodeURI(location.href.match(/\&k\=(.+)/)[1]);
        if (value.length == 2) {
            $('input[name="LocType"][value="' + value[1] + '"]').prop('checked', true);
        }  

これは、チェックボックスの値をキャプチャして URL に渡す方法です。

var checkboxValues = $("input[name=LocType]:checked").map(function() {
        return "\"" + $(this).val() + "\"";}).get().join(" OR ");

    window.location= url+checkboxValues;

    <div class="LocTypeChkBoxesSearch">
    <div class="LocTypeChkBoxes">
        <input name="LocType" type="checkbox" value="Hospital"/>HOSPITALS&#160;&#160;
        <input name="LocType" type="checkbox"  value="Office"/>  PHYSICIAN OFFICES&#160;&#160;
        <input name="LocType" type="checkbox"  value="Emergency"/>EMERGENCY CENTERS&#160;&#160;
        <input name="LocType" type="checkbox"  value="Out-Patient"/>OUT-PATIENT CENTERS&#160;&#160;
        <input name="LocType" type="checkbox" value="Facility"/>FACILITIES
    </div>
    <div class="searchBtnHolder"><a class="searchButton" href="#" type="submit" ><span>GO</span></a></div>
</div>
4

3 に答える 3

0

これを試して。

//Split the url parameter value and get all the values in an array
var checkedOnes = decodeURI(location.href.match(/\&k\=(.+)/)[1]).split(" OR ");

//Find all the checkbox with name="LocType" and cache them in local variable
var $checkBoxes = $('input[name=LocType]');

//Loop through the array and find the corresponding checkbox element using filter
$.each(checkedOnes, function(i, val){
    $checkBoxes.filter('value=[' + $.trim(val.replace(/\"/g, '')) +']').prop('checked', true);
});

の値を分割すると、配列内のすべての値が得られますkOR次に、配列をループし、値属性を照合して対応するチェックボックスを見つけ、そのcheckedプロパティをメソッドをtrue使用するように設定しますprop

于 2012-02-27T21:35:04.220 に答える
0

これには JavaScript は必要ありません。バックエンド コードで $_GET パラメータを確認し、適切なフォーム要素属性でページを提供できます。

たとえば、PHP では次のようになります。

<input name="LocType" type="checkbox" value="Facility" <?php if (isset($_GET['LocType'] && $_GET['LocType'] == 'Facility') { ?> checked="checked" <?php } ?> /> FACILITIES
于 2012-02-27T21:38:01.603 に答える