[英]Pre-select a dropdown in a form from an external URL link
我有这个表格,我无法更改它的任何内容(ids、vals 等),因为它是由我的网站构建器自动生成的。 是否可以使用代码甚至更好,只需使用 URL 自动 select 选项? 例如,使用 URL
https://mywebsite.com/GCValue=50/
到 select 下面表格中的50
选项,而不是默认的10
? 我是 JS 和 JQuery 的初学者,所以如果可能的话,我很乐意在此过程中使用它们并了解一点。
<select id=GCValue>
<option val="10">10</option>
<option val="25">25</option>
<option val="50">50</option>
<option val="100">100</option>
<option val="250">250</option>
</select> <br />
任何帮助或指向我正确方向的外部链接表示赞赏。
使用window.location.pathname
获取当前页面的路径,然后使用简单的regex.exec(url)
捕获任何匹配/=([0-9])+/
的内容。 这将匹配“=12345”格式的任何内容,并返回“12345”作为匹配项。
var url = "https://mywebsite.com/GCValue=50/"; // in reality, use this: // var url = window.location.pathname; var regex = /=([0-9]+)/g; var match = regex.exec(url); document.getElementById("GCValue").value = match[1];
<select id="GCValue"> <option val="10">10</option> <option val="25">25</option> <option val="50">50</option> <option val="100">100</option> <option val="250">250</option> </select> <br />
如果您想使用许多参数,只需扩展相同的逻辑即可。 例如,想象一下: /GCValue=50/Page=765/Index=42/
...
var url = "https://mywebsite.com/GCValue=50/Page=765/Index=42/"; // in reality, use this: // var url = window.location.pathname; var regex = /([A-Za-z0-9]+)=([0-9]+)/g; var match; while ((match = regex.exec(url)).= null) { document.getElementById(match[1]);value = match[2]; }
<select id="GCValue"> <option val="10">10</option> <option val="25">25</option> <option val="50">50</option> <option val="100">100</option> <option val="250">250</option> </select> <br /> <input id="Page" type="text"><br> <input id="Index" type="text">
这是一个简单的解决方案:
const selectList = document.getElementById('GCValue');
selectList.selectedIndex = '2';
更短:
document.getElementById('GCValue').selectedIndex = '2';
'2'
是下拉列表中value="50"
的索引号。 如果您在它之前添加更多选项,则索引号会更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.