Javascript 如何自动选择<;选择>;包含基于页面加载URL参数的值的下拉列表?
我目前正在一个网站上工作,在该网站上,在日程表页面上显示的任何事件上单击“注册”将导致一个注册页面,Javascript 如何自动选择<;选择>;包含基于页面加载URL参数的值的下拉列表?,javascript,jquery,html,Javascript,Jquery,Html,我目前正在一个网站上工作,在该网站上,在日程表页面上显示的任何事件上单击“注册”将导致一个注册页面,下拉列表将根据url末尾的参数自动选择一个值 但是,我很难确保选择基于这些参数的值的选项。单击“注册”按钮后,注册页面上的下拉列表不会显示任何文本,尽管URL末尾有参数 实时URL:。(在该页面的下拉菜单上选择任何内容,然后单击任何“注册”按钮。) JS: $.urlParam = function(name){ var results = new RegExp('[\?&]' +
下拉列表将根据url末尾的参数自动选择一个值
但是,我很难确保选择基于这些参数的值的选项。单击“注册”按钮后,注册页面上的下拉列表不会显示任何文本,尽管URL末尾有参数
实时URL:。(在该页面的下拉菜单上选择任何内容,然后单击任何“注册”按钮。)
JS:
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
var service = $.urlParam('service');
var batch = $.urlParam('batch');
var appendURL = '?service=' + service + '&batch=' + batch;
var selectValue = $('.page-enroll .info').data('value');
if ( service !== undefined && batch !== undefined ) {
$('.page-enroll select[name="batch"]').val(service + '-' + batch);
}
由于您在这里处理的是
的
,因此需要将属性分配给所选的属性
其次,由于您处理的是
s,因此该属性被称为value
,而不是val
。(如果您提交
,这一点很重要)
因此,您的代码应该是这样的:
jQuery('.page-enroll select[name="batch"] option[val="' + service + '-' + batch + '"]').attr("selected", true)
在您的网站上测试:-)
其他一些小建议:通过使用location.search
,您只需阅读?
之后的部分即可(或许还可以保存一些正则表达式,例如通过在和上拆分和=
)
您的选项上需要有值
——不需要难以检索的数据属性
如果您有值,这将起作用并替换$.urlParam
如果没有值(这没有任何意义),则需要在选项的attr(“val”)
上进行选择,但这非常难看
const parms=new URLSearchParams(“?service=enrich&batch=QC1”);//这将是location.search
$(函数(){
常量值=parms.get(“服务”)+“-”+parms.get(“批处理”);
$(“[name=batch]”).val(value);//设置value属性!val是jQuery方法
//选项上不需要数据属性的原因:
$(“[name=batch]”。在(“更改”,函数()上){
常量[service,batch]=this.value?this.value.split(“-”):[“”,“”];
console.log(服务、批处理);
})
})
首选地点和批次
六年级数学强化课程
斯塔。罗莎,拉古纳•第一批
奎松市•第1批
洛斯巴尼奥斯,拉古纳•第2批
高中入学考试复习
洛斯巴尼奥斯、拉古纳•PSHS+UPRH审查——LB1
斯塔。罗莎,拉古纳•PSHS+UPRH审查–SR1
斯塔。罗莎,拉古纳•PSHS+UPRH审查–SR2
为什么您的选项上没有值
?val不是有效/有用的选项AttributeAll那么为什么在body标记上有一个类呢?当page enroll是body标记上的类时,不需要限定$('.page enroll select[name=“batch”]”)
。jQuery('.page enroll select[name=“batch”]”)。val(service+'-'+batch)
应该足够了。@php开发人员在HTML选项没有值但有val属性时不会这样做