我有一个表单,其中部分HTML代码是
<div class="form-group">
<label class="col-lg-4 col-sm-4 control-label" for="state">State:*</label>
<div class="col-lg-8 col-sm-8 stateDiv">
<select class="form-control" id="state" name="state" mandatory="true">
<option value="" selected="selected">-Please select-</option>
<option value="ACT">ACT</option>
<option value="NSW">NSW</option>
<option value="TAS">TAS</option>
<option value="QLD">QLD</option>
<option value="VIC">VIC</option>
</select>
</div>
</div>
我需要选择即将来到URL的那个......因为在这种情况下我们有新南威尔士州,新南威尔士州应该更改为选中。如果传递的参数是ACT,则选择ACT。
我一直在尝试如下
var vars = [], hash;
var q = document.URL.split('?')[1];
if(q != undefined){
q = q.split('&');
for(var i = 0; i < q.length; i++){
hash = q[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
}
}
if(vars['state'] != null){
}
如何根据参数来选择它?
答案 0 :(得分:2)
要获得正确的状态值,您可以使用此功能:
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
var state = GetURLParameter('state');
如果您使用的是jQuery 1.6或更高版本,请尝试此操作:
$('#state option[value="'+ state +'"]').prop('selected', true);
对于低于1.6的jQuery,请使用:
$('#state option[value="'+ state +'"]').attr('selected', 'selected');
查看上面的示例,我指定了变量[&#39; state&#39;]因为我们无法将ny变量放入jsfiddle的url中 http://jsfiddle.net/SPn3W/1/
答案 1 :(得分:1)
Try this
if(vars['state'] != null){
$('#state').val(vars['state']);
}
or you can change your code for getting query string
$.urlParam = function(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results)
{
return 0;
}
return results[1] || 0;
}
if($.urlParam("state") != ''){
$('#state').val($.urlParam("state"));
}
答案 2 :(得分:1)
刚
$('#select').val(vars['state']);
应该有效。只需在document.onready()
中包含此行答案 3 :(得分:0)
谢谢大家。你所有的答案都以某种方式帮助了我。这就是我最终使用
$( document ).ready(function() {
var vars = [], hash;
var q = document.URL.split('?')[1];
if(q != undefined){
q = q.split('&');
for(var i = 0; i < q.length; i++){
hash = q[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
}
}
var urlState = vars['state'];
if(urlState != null){
$("#state").val(urlState);
}
});