2016-04-06 24 views
0

için Bitti Kutu Değeri Aldım İki komut dosyası var. Biri, kontrol edilen kutuların değerini ve diğer <a> etiketimi ekleyecektir. Her ikisi de ayrı ayrı çalışıyor ancak url ek yazıma yerleştirilecek 'str' değerine ihtiyacım var ve işe yaramaya gelemiyorum.URL Ekle

<script> 
var checked, checkedValues = new Array(); 
$(document).on('change', 'input[type=checkbox]', function(e) { 

checked = $('input[type=checkbox]:checked'); 
checkedValues = checked.map(function(i) { return $(this).val() }).get(); 

$('.aaa').html(checked.length + ' are checked'); 
if (checked.length) { 
    var str = checkedValues.join(); 
}); 
</script> 

url eklemek için İkinci senaryo gibidir:

Benim olsun onay kutusu benziyor benim url 'str' değerini yerleştirmek çalışıyorum

<script> 
$('.nextquestion').attr('href', function() { 
this.href = this.href + '&answers=+str+'; 
}); 
</script> 

. Birisi yardım edebilir mi?

window.history.replaceState(); 

Bunlar için kullandığımız bazı yardımcı işlevler şunlardır: str Olabilir

+0

Meaby tıklayın (function() {/ * hesaplamak newComputedUrl */window.location = newC. omputedUrl;}); 'yerine $ ('. sonraki sıra'). attr ('href', ...'. –

cevap

0

ikinci senaryonun işlevi içinde erişilebilir değil,

var str 
if (checked.length) { 
    str = checkedValues.join(); 
}); 

$('.nextquestion').attr('href', function() { 
    //here first check if str has value 
    this.href = this.href + '&answers=+str+'; 
}); 
0

kullanmayı deneyin küresel değişkeni yapmak gerekebilir Bu: Eğer `$ ('nextquestion') yapmalıdır

var addUrlParam = function (param, value) { 

    var originalUrlArray = window.location.href.replace(/#/g, "").replace(/!/g, "").split("?"); 

    var query = originalUrlArray[1] || false; 

    var vars = query ? query.split("&").clean("") : []; 

    vars.push(param + "=" + value); 

    var newQueryString = vars.join("&"); 

    var newUrl = originalUrlArray[0] + "?" + newQueryString; 

    window.history.replaceState(null, null, newUrl); 
}; 

var updateUrlParam = function (paramToUpdate, newValue) { 

    var originalUrlArray = window.location.href.replace(/#/g, "").replace(/!/g, "").split("?"); 

    var query = originalUrlArray[1]; 

    var vars = query.split("&"); 

    var newVars = vars.slice(); 

    var matches = vars.searchFor(paramToUpdate); 

    if (matches) { 

     for (var i = 0; i < matches.length; i++) { 

      var pair = vars[matches[i]].split("="); 

      if (pair[0] === paramToUpdate) { 

       pair[1] = newValue; 

       newVars[matches[i]] = pair.join("="); 
      } 

     } 

     var newUrl = originalUrlArray[0] + "?" + newVars.join("&"); 

     window.history.replaceState(null, null, newUrl); 
    } 

};