我有这段代码:
function SelectReferralFromQueryString() {
var queryStringName = GetParameterValues('Referral');
if (queryStringName != undefined || queryStringName != null) {
queryStringName = decodeURIComponent(queryStringName);
var exists = false;
$('#refDropDown option').each(function () {
if (this.value == queryStringName) {
exists = true;
var option = $(this);
$(this).remove();
$('#refDropDown option').prepend(option);
return false;
}
});
if (exists == true){
DropDownReferral.value = queryStringName;
$("#refDropDown").prop("disabled", true);
}
}
}
function GetParameterValues(param) {
var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < url.length; i++) {
var urlparam = url[i].split('=');
if (urlparam[0] == param) {
return urlparam[1];
}
else
return false;
}
}
这个HTML:
<select name="refDropDown" id="refDropDown" class="items" data-hidden-field="DropDownReferral">
<option value="">Please Select</option>
<option value="Albert">Al</option>
<option value="Steve T">Steve</option>
</select>
所以,逻辑是:
我在这里缺少什么?
如果我要通过?推荐=艾伯特,那么它应该告诉我&#39; Al&#39;在上面。如果我过世了?推荐=史蒂夫,然后就是表演史蒂夫&#39;在顶部并禁用下拉列表。
答案 0 :(得分:0)
如果你可以指望推荐是一个有效的值,你可以尝试这个(未经测试):
$('#refDropDown').val(queryStringName).prop('disabled', true);
否则,通过执行以下操作来检查值是否存在:
if($('#refDropDown option[value="' + queryStringName + '"]').length != 0){
//code above here
}
然后摆脱选项上的那个循环以及将选择框设置为禁用的if
。
另外,作为附注,禁用的选择框在您提交表单时不会提交值,因此您需要使用引荐参数或隐藏字段。
答案 1 :(得分:0)
您可以使用jQuery的val()函数来选择选项:
$("#refDropDown").val(queryStringName);