为<;选项>;使用JavaScript基于selectedIndex的标记
下一个问题与我发布的已解决的问题结合使用,我有模板根据下拉选择发布到文本框,使用:为<;选项>;使用JavaScript基于selectedIndex的标记,javascript,drop-down-menu,onload,option,selectedindex,Javascript,Drop Down Menu,Onload,Option,Selectedindex,下一个问题与我发布的已解决的问题结合使用,我有模板根据下拉选择发布到文本框,使用: var showLeftTemplates = function(sel) { var locations = [ "template 1", "template 2", "template 3", "template 4", "template 5",
var showLeftTemplates = function(sel) {
var locations = [ "template 1",
"template 2",
"template 3",
"template 4",
"template 5",
];
var srcLocation = locations[sel.selectedIndex];
if (srcLocation != undefined && srcLocation != "") {
document.getElementById('LeftTemplates').value = srcLocation;
}
}
及
这是剧本
<script type="text/javascript">
var LeftValues = function(sel) {
var labels = [ "Please select a template...",
"test1",
"test2",
"test3",
"test4",
"test5",
"test6",
];
var srcValues = location[sel.selectedIndex];
if (srcValues != undefined && srcValues != "") {
document.getElementById('LeftTemplates').innerHTML= srcValues;
}
}
</script>
var LeftValues=函数(sel){
var labels=[“请选择一个模板…”,
“测试1”,
“测试2”,
“测试3”,
“测试4”,
“测试5”,
“测试6”,
];
var srcValues=位置[selectedIndex];
如果(srcValues!=未定义&&srcValues!=“”){
document.getElementById('LeftTemplates')。innerHTML=srcValues;
}
}
我相信你们中的大多数人不用测试就可以看到这一点,并且知道它不会工作,甚至不会接近。我真的很困惑,如何才能让标签加载,这样如果我更改模板的顺序,我就可以轻松地更改下拉列表标题的顺序,这样我就不会将错误的名称与加载的错误模板混淆
如果有人能帮我解决这个问题,我将不胜感激,我不确定我是否用错误的方式处理整个脚本,如果这是一个我忽略的简单错误(我也试过
,但也没用。我希望我能提供更多信息,但在测试时我甚至没有收到错误。它根本不起作用
提前谢谢
我开始认为这一行是问题所在:
var srcValues=位置[sel.selectedIndex];
我正试着把这一点融入其中
var srcValues=location[options.selectedIndex.value];
但这仍然不起作用,只是共享更新。选项标记的
标签
属性只是一个文本标签,因此它永远不会像上面所说的那样调用您的javascript函数。您真正想做的是使用javascript构建整个select,因此它将自动更新恩,你可以改变模板的顺序。我会尝试在下面写一些可能对你有帮助的东西
HTML:
Javascript:
<script type="text/javascript">
window.onLoad = buildSelect();
function buildSelect() {
var labels = ["Please select a template...",
"test1",
"test2",
"test3",
"test4",
"test5",
"test6"
];
for(var i=0; i<labels.length; i++) {
var selectBox = document.getElementById('templateSelect');
var newOption = document.createElement('option');
newOption.label = labels[i];
newOption.innerHTML = labels[i];
newOption.value = labels[i];
if(i==0) { newOption.setAttribute('selected','selected'); }
selectBox.appendChild(newOption);
}
}
showSelectedTemplate = function(elem) {
var selectedTemplate = elem.options[elem.options.selectedIndex].value;
alert(selectedTemplate);
}
</script>
window.onLoad=buildSelect();
函数buildSelect(){
var labels=[“请选择一个模板…”,
“测试1”,
“测试2”,
“测试3”,
“测试4”,
“测试5”,
“测试6”
];
对于(var i=0;iWow!这真是难以置信,正是我所需要的,非常感谢!我在看它似乎能够做我所需要的,但它是为显示一年中的几个月而设计的,我不知道如何修改它以适应我的需要,但你所提出的是更好的,正是我所希望的!非常感谢!自从它发布以来处理同样的剧本,你能给我2美分吗?:)
<script type="text/javascript">
var LeftValues = function(sel) {
var labels = [ "Please select a template...",
"test1",
"test2",
"test3",
"test4",
"test5",
"test6",
];
var srcValues = location[sel.selectedIndex];
if (srcValues != undefined && srcValues != "") {
document.getElementById('LeftTemplates').innerHTML= srcValues;
}
}
</script>
<form id="leftTemplates" name="left" action="">
<select id="templateSelect" onchange="showSelectedTemplate(this)">
</select>
</form>
<script type="text/javascript">
window.onLoad = buildSelect();
function buildSelect() {
var labels = ["Please select a template...",
"test1",
"test2",
"test3",
"test4",
"test5",
"test6"
];
for(var i=0; i<labels.length; i++) {
var selectBox = document.getElementById('templateSelect');
var newOption = document.createElement('option');
newOption.label = labels[i];
newOption.innerHTML = labels[i];
newOption.value = labels[i];
if(i==0) { newOption.setAttribute('selected','selected'); }
selectBox.appendChild(newOption);
}
}
showSelectedTemplate = function(elem) {
var selectedTemplate = elem.options[elem.options.selectedIndex].value;
alert(selectedTemplate);
}
</script>