为<;选项>;使用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>