2014-01-17 52 views
0

我试图自动检查基于URL中参数值的单选按钮。在用户选择了一些值并在前一页上提交表单后,这些参数被添加到URL中。在下一页中,有一个表单和其他一些输入。我想要做的是检查相同的值,该用户已在上一页中选择无线电。jQuery。从URL获取参数值并检查单选按钮

可以说我有这个网址的页面二:domain.com/page.html?checkbox-one=1 &复选框两= 0

在此页面中我有无线电输入:

<input type="radio" name="checkbox-one" value="0" id="radio1" /> 
    <label for="radio1">Radio#1</label> 

    <input type="radio" name="checkbox-one" value="1" id="radio2" /> 
    <label for="radio2">Radio#2</label> 

    <input type="radio" name="checkbox-two" value="0" id="radio3" /> 
    <label for="radio3">Radio#3</label> 

    <input type="radio" name="checkbox-two" value="1" id="radio4" /> 
    <label for="radio4">Radio#4</label> 

在这种情况下,我想查看name="checkbox-one" value="1"name="checkbox-two" value="0"检查。

PHP解决方案是不可取的,所以我怎么用jQuery来实现这一点。有没有办法读取URL参数值并检查基于它们的单选按钮?

谢谢!

回答

1

This post展示了如何从URL

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

你可以得到一个参数值,然后通过复选框循环,看看他们是否应检查与否。

$("input[type=radio]").each(function() { 
     var currInputName = $(this).attr('name'); 

     if(getParameterByName(currInputName) == '1'){ 
      $(this).prop("checked", true); 
     } 
}); 

您应该注意,您一次只能检查1个收音机。

+0

感谢您的回答,这很有帮助,并给了我一个关于如何继续下去的想法。请参阅我的解决方案,该解决方案使用jQuery替代方案。 –

1

接受的答案是非常有帮助的,但jQuery的用法在我的情况下更可取,所以我使用了一些不同的解决方案。 Here我发现了一个很好的代码片断,为了我的目的我稍微修改了一下。

// Getting query string parameters 
var vars = [], hash; 
var query = document.URL.split('?')[1]; 
if(query != undefined){ 
    query = query.split('&'); 
    for(var i = 0; i < query.length; i++){ 
     hash = query[i].split('='); 
     vars.push(hash[1]); 
     populateRadios(); 
    } 
}; 

// Checking radio buttons 
function populateRadios() { 
    $("input[type=radio]").each(function() { 
     $('input[name="' + hash[0] + '"][value="' + hash[1] + '"]').prop('checked', true); 
    }); 
}; 

该代码段解构查询字符串,并将参数及其值放入单独的散列中。然后调用单选按钮检查功能,就是这样。

我会感谢您的意见和改进建议。谢谢!