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属性时不会这样做