- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个条件表单,单击提交后需要定向到特定的产品页面。这段代码可以做到这一点吗?我无法弄清楚如何将数组值链接到 URL 变量。
a=new Array("V1-1: 1/4-4 900-4500#", "V1-1 Light-Weight Compact Solution", "V1-2: 1/2-36 150-600#","V1-3: 1/2-2, 150-600#","V1-4: 4-36 900-4500#");
b=new Array('NexTech® R Series Valves','NexTech® E Series Valves','TrunTech® Valves', 'PulseJet Valves');
c=new Array('Coking Isolation Valves','Coking Switch Valves');
d=new Array('Three-Way Valves','Four-Way Valves');
e=new Array('IsoTech®');
f=new Array('Xactrol® Mark I Valves', 'Xactrol® Mark II Valves', 'Xactrol® Mark III Valves');
g=new Array('PulseJet Valves','Ecopack®');
h=new Array('AbrasoCheck® Slurry Check Valves', 'AbrasoTech® Slurry Ball Valves');
i=new Array('Electronic Relief Valves');
j=new Array('ValvXpress® Automated Valve Packages');
k=new Array('Acid Injection Valves');
l=new Array('Double Block-and-Bleed Valves');
m=new Array('Turbine Bypass System');
n=new Array('Check Valves');
o=new Array('ValvXpress®','EcoPack®','ValvPerformance Testing®','Slurry Valves','Acid Injection Valves','Double Block-and-bleed Valves','Rhinoite® Hardfacing','Switch Valves','HVOF RiTech®','Cryogenic Valves');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='a'){
a.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='b'){
b.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='c'){
c.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='d'){
d.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='e'){
e.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='f'){
f.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='g'){
g.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='h'){
h.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='i'){
i.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='j'){
j.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='k'){
k.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='l'){
l.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='m'){
m.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='n'){
n.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='o'){
o.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
}
最佳答案
首先,您违反了DRY principle 。不要为每组产品设置单独的变量,而是将每个产品存储在某种字典结构(例如对象)中。
这将是我的第一次修订。
var dict = {
a: ["V1-1: 1/4-4 900-4500#", "V1-1 Light-Weight Compact Solution", "V1-2: 1/2-36 150-600#","V1-3: 1/2-2, 150-600#","V1-4: 4-36 900-4500#"],
b: ['NexTech® R Series Valves','NexTech® E Series Valves','TrunTech® Valves', 'PulseJet Valves'],
c: ['Coking Isolation Valves','Coking Switch Valves'],
d: ['Three-Way Valves','Four-Way Valves'],
e: ['IsoTech®'],
f: ['Xactrol® Mark I Valves', 'Xactrol® Mark II Valves', 'Xactrol® Mark III Valves'],
g: ['PulseJet Valves','Ecopack®'],
h: ['AbrasoCheck® Slurry Check Valves', 'AbrasoTech® Slurry Ball Valves'],
i: ['Electronic Relief Valves'],
j: ['ValvXpress® Automated Valve Packages'],
k: ['Acid Injection Valves'],
l: ['Double Block-and-Bleed Valves'],
m: ['Turbine Bypass System'],
n: ['Check Valves'],
o: ['ValvXpress®','EcoPack®','ValvPerformance Testing®','Slurry Valves','Acid Injection Valves','Double Block-and-bleed Valves','Rhinoite® Hardfacing','Switch Valves','HVOF RiTech®','Cryogenic Valves']
};
$(function() {
// attach an 'change' event handler
// THEN trigger the event handler to call the function from the start
$('#cat').change(populateSelect).trigger('change');
});
function populateSelect() {
// this refers to the current element
// get the selected value
var cat = this.value;
// always a good idea to cache your element that you will be re-using (maybe move it outside the function too)
var items = $('#item');
items.html('');
// check if there are products associated with the selected value
if (dict.hasOwnProperty(cat)) {
// show products
dict[cat].forEach(function(product) {
items.append('<option>' + product + '</option>');
});
}
}
现在,就您的实际问题而言。我们可以修改数组,使其也包含 url。为了简单起见,您可以使用数组的数组,例如
a: [["V1-1: 1/4-4 900-4500#", "url"], ["V1-1 Light-Weight Compact Solution", "url"], ...]
或对象数组以提高可读性,例如
a: [{ name: "V1-1: 1/4-4 900-4500#", url: "url" }, { name: "V1-1 Light-Weight Compact Solution", url: "url"}, ...]
这是我使用对象数组的第二次修订。 (我缩短了字典只是为了显示说明)。
var dict = {
a: [
{
name: "V1-1: 1/4-4 900-4500#",
url: "http://www.bing.com"
},
{
name: "V1-1 Light-Weight Compact Solution",
url: "http://www.google.com"
},
{
name: "V1-2: 1/2-36 150-600#",
url: "http://www.yahoo.com"
},
],
b: [
{
name: 'NexTech® R Series Valves',
url: 'http://www.nike.com'
},
{
name: 'NexTech® E Series Valves',
url: 'http://www.walmart.com'
}
],
c: [{
name: 'Coking Isolation Valves',
url: 'http://www.adidas.com'
}],
};
$(function() {
// cache element so that you don't re-search the DOM multiple times
var $items = $('#item');
$('#cat').change(populateSelect).trigger('change');
$('#goto').click(redirectToURL);
// place the functions within the document.ready so that they have access to the cached elements
function populateSelect() {
$items.html('');
if (dict.hasOwnProperty(this.value)) {
dict[this.value].forEach(function(product) {
// you can store the URL in HTML5-data attribute to use it later
$items.append('<option data-url="' + product.url + '">' + product.name +'</option>');
});
}
}
function redirectToURL() {
// get the URL from the selected option's data-url and redirect to it
window.location.href = $items.find(':selected').data('url');
}
});
从技术上讲,您不是在“提交”表单,而只是“重定向”——因此我不会使用提交按钮,而只是使用普通按钮。
<input type="button" id="goto" value="submit">
下面是 demo最终修订版。你必须修复字典。
关于Javascript - 基于动态填充下拉菜单的转到 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40592092/
假设我拥有域 mydomain.com,并且我在服务器上有一个 Web 应用程序,网址为 http://99.99.99.99:1234/MyApplication/startpage.somethi
我正在尝试通过以下方式更新已解析的 URL: u, _ := url.Parse(s) if u.Scheme == "" { u.Scheme = "https" } if u.Path =
如何将 www.somesite.com/api(.*) 映射到 www.somesite.com/$1:9000? (我需要将/api 映射到运行 @ 端口 9000 的 Play 框架应用程序)
我有一个资源结构,如航类 > 座位 > 预订,所以预订属于某个航类的某个座位: http://example.com/jdf_3prGPS4/1/jMBDy46PbNc
我想知道以下网址是否有效。 路径中的点,在主机之后: http://www.example.com/v.b.w..com 主机中的点,作为子域的一部分: http://v.b.w..co.manufa
我有两个域 - crmpicco.co.uk 和 ayrshireminis.com - 如果我浏览到: www.crmpicco.co.uk/mini/new我希望能够重定向到 www.ayrshi
我正在尝试使用 URL 重写和应用程序请求路由来重写到外部 URL。我设置了以下规则: 在规则中,“patternToMatch”是我试
我已经安装了带有 SharePoint 和 Url Rewrite 模块的 IIS 7.0。 是以下句子还是我配置错误才能看到这个结果? Url Redirect 可以将 url 重定向到任何内部(在
我想知道,为了获得良好的 SEO,您必须在 URL 中使用自然语言。您知道字符中单词或短语的最大大小吗?例如: www.me.com/this-is-a-really-long-url.htm 我问这
有人知道在 SEO 友好 URL 中使用逗号有什么问题吗?我正在使用一些在其 SEO 友好 URL 中使用大量逗号的软件;但我 100% 肯定我见过一些程序/平台无法正确识别 URL 并在第一个逗号后
我有一个网站,我正在为所有链接使用干净的 URL。我想知道对于简短的基本 URL 与较长的描述性 URL 有何看法。 例如,如果我的网站是关于 Georgia Bulldog 足球新闻的,那么哪个网站
我正在编写一个类似于 tinyurl 的 URL 缩短器,我想知道如何跟踪已经使用我的服务缩短的 URL?例如,tinyurl 为相同的长 URL 生成相同的小 URL,而不管是谁创建的。如
我是 magento 的新手。我正在开发一个模块。为此,我有一些要显示链接的 css 和 js 文件。我目前有类似 的链接 getSkinUrl('module_tryouts/css/jquery.
我想基于 HTTP_URL 重写 URL 以重定向到不同的端口,同时保留其余的 URL 和查询字符串(如果指定)。例如, http://host/john/page.aspx 应该重定向到 http:
我遇到了以下问题: 我的 Grails (2.2.0) 应用程序具有以下 URL 映射: "/api/clientQuote/$labcode/$cliCode/$quoCode"(controlle
我有一个很长的 URL,它不适合 URL 字段。它一直在修剪。该怎么办?有没有办法增加 SharePoint 2010 中的 URL 字段字符限制? 或者解决方法来容纳长 URL。例如,以下 URL
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我们从客户以前的开发人员那里继承了相当多的 Google Apps 脚本项目。 Apps 脚本通过嵌入式小部件部署在 Google 网站 (sites.google.com) 的各个页面上。每当我们需
我正在编写一些文档,但遇到了一些词汇问题: http://www.example.com/en/public/img/logo.gif 被称为“绝对”网址,对吗? ../../public/img/l
我们从客户以前的开发人员那里继承了相当多的 Google Apps 脚本项目。 Apps 脚本通过嵌入式小部件部署在 Google 网站 (sites.google.com) 的各个页面上。每当我们需
我是一名优秀的程序员,十分优秀!