2017-05-20 5 views
-1

私は今これを多くの時間試してきました。私は入力値を取得しているし、新しいパラメータを追加し、ダミー値23をパラメータnumber_rangeに渡すだけでページをリダイレクトしようとしています。不要なパラメータを追加してJavascriptウィンドウを再配置

しかし、最後にwindow.location部分では、常にmyurl /?e = 1というパラメータを先頭に追加します。その後、適切にリダイレクトされます。これをどのように修正するのですか?助けてください。

また、私はjavascriptを使い慣れていますので、間違いや間違いを許してください。

<h3>Price Filter</h3> 

<input id="number_range" type="text"/><br> 
<button onclick="filter_start(this,'gt'); return true;">Greater or equal</button><br> 
<button onclick="filter_start(this,'ltt'); return false;">Less or equal</button> 


<script language="javascript" type="text/javascript"> 

    var filter_start = function(el, indicator){ 

     setGetParameter("number_range", 23); 
    } 

    function setGetParameter(paramName, paramValue) 
{ 
    var url = window.location.href; 
    var hash = location.hash; 
    url = url.replace(hash, ''); 
    if (url.indexOf("?") >= 0) 
    { 
    var params = url.substring(url.indexOf("?") + 1).split("&"); 
    var paramFound = false; 
    params.forEach(function(param, index) { 
     var p = param.split("="); 
     if (p[0] == paramName) { 
     params[index] = paramName + "=" + paramValue; 
     paramFound = true; 
     } 
    }); 
    if (!paramFound) params.push(paramName + "=" + paramValue); 
    url = url.substring(0, url.indexOf("?")+1) + params.join("&"); 
    } 
    else 
    url += "?" + paramName + "=" + paramValue; 

    window.location.href = url + hash; 
} 

編集:申し訳ありませんが、別の場所で実行しましたが、これはうまくいくようです。私は問題がDjangoの管理テンプレートまたはjqueryにあると思う。

+0

ああ、私はジャンゴと呼ばれるフレームワークを使用していますし、それが助け場合、私は彼らの管理テンプレートで、このコードを使用しました。.. –

答えて

0

中カッコがいくつか欠けているようです。

var filter_start = function(el, indicator) { 
    setGetParameter("number_range", 23); 
} 

function setGetParameter(paramName, paramValue) { 
    var url = window.location.href; 
    var hash = location.hash; 
    url = url.replace(hash, ''); 
    if (url.indexOf("?") >= 0) { 
    var params = url.substring(url.indexOf("?") + 1).split("&"); 
    var paramFound = false; 
    params.forEach(function(param, index) { 
     var p = param.split("="); 
     if (p[0] == paramName) { 
     params[index] = paramName + "=" + paramValue; 
     paramFound = true; 
     } 
    }); 
    if (!paramFound) params.push(paramName + "=" + paramValue); 
    url = url.substring(0, url.indexOf("?") + 1) + params.join("&"); 
    } else { 
    url += "?" + paramName + "=" + paramValue; 
    window.location.href = url + hash; 
    } 
} 
+0

おかげで、私はあなたのコードを実行する場合でも、私は非常にわずかにあなたのコードを整理しました最初のボタンをクリックするとmyurl /?e = 1にリダイレクトされ、2回目のクリックでmyurl/e = 1&number_range = 23にリダイレクトされます –

関連する問題