繁体   English   中英

JavaScript:使用另一个下拉列表中的onchange数据填充html下拉列表

[英]Javascript: Populating a html drop-down list based on onchange data from another dropdown using

好。 我已经搜寻了几个小时。 我似乎找不到答案。 我尝试了几种不同的键入代码的方法,但似乎无法实现。 所以,这里去。

我发现第一个框pcclan正在注册onchange。 但是,似乎没有在下拉列表中注册selectedIndex,值或文本。 我将声明第一个下拉氏族是通过php呈现的。 但是,我也尝试用javascript渲染它。 不管我做什么,我都做不到。 无论如何,随着演出。

基于pcclan,这是一个12或13个选项的下拉菜单,应该通过if if if参数找到合适的部落,然后根据所选的部落填充另一个名为famnames的下拉菜单。

我已经尝试了我所知道的一切,以完成此任务,但是它只是无法正常工作。 所以,我终于来到了你们所有人。 我觉得这很简单,我很想念。 我也觉得这是在if if if中。 我已经尝试了所有可以想到的方法,并且可以找到针对第一个下拉菜单pcclan的方法。 同样,按名称显示,仅使用crabclan数组填充的名称会减少。 这是目前的代码。

var pcclan = new Array("Crab","Crane","Dragon","Lion","Phoenix","Mantis","Scorpion","Unicorn","Imperial","Badger","Dragonfly","Hare","Monkey","Oriole","Ox","Sparrow","Tortoise","Monk", "Ronin","Merchant");
var crabfams = new Array("Hida","Hiruma","Kaiu","Kuni","Toritaka","Yasuki");
var cranefams = new Array("Asahina","Daidoji","Doji","Kakita");
var dragonfams = new Array("Kitsuki","Mirumoto","Tamori","Togashi");
var lionfams = new Array("Ikoma","Akodo","Kitsu","Matsu");
var mantisfams = new Array("Kitsune","Moshi","Tsuruchi","Yoritomo");
var phoenixfams = new Array("Agasha","Asako","Isawa","Shiba");
var scorpionfams = new Array("Bayushi","Shosuro","Soshi","Yogo");
var unicornfams = new Array("Horiuchi","Ide","Iuchi","Moto","Shinjo","Utaku");
var imperialfams = new Array("Miya","Otomo","Seppun","Toturi");
var badgerfams = new Array("Ichiro");
var dragonflyfams = new Array("Tonbo");
var harefams = new Array("Usagi","Ujina");
var monkeyfams = new Array("Toku","Fuzaki");
var oriolefams = new Array("Tsi");
var oxfams = new Array("Morito");
var sparrowfams = new Array("Suzume");
var tortoisefams = new Array("Kasuga");
var monkfams = new Array("Monk");
var roninfams = new Array("Ronin");
var merchantfams = new Array("Fuuki","Kaeru","Ryousie");
var nothin = new Array("Please Choose a Family","---");

function remfams()
{
var e = document.getElementById("famnames");
if (e.options.length > 0)
{
    var count=0;
    for ( ; count < e.options.length ;)
    {
        e.remove(count);count = 0;
    }
}
}

function popclans()
{
var clansdd = document.getElementById("pcclan");
for (var i=0; i < pcclan.length;++i)
    {
        addfams(clansdd, pcclan[i], pcclan[i]);
    }
}

function addfams(selectbox,text,value )
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}

function getfams()
{
var clansdd = document.getElementById("pcclan");
var index = clansdd.selectedIndex;
var clansddvalue = clansdd.text;
var famnames = document.getElementById("famnames");
if (clansddvalue = "Crab")
{
for (var i=0; i < crabfams.length;++i)
    {
        addfams(famnames, crabfams[i], crabfams[i]);
    }
} else if (clansddvalue = "Crane"){
for (var i=0; i < cranefams.length;++i)
    {
        addfams(famnames, cranefams[i], cranefams[i]);
    }
} else if (clansddvalue = "Dragon") {
for (var i=0; i < dragonfams.length;++i)
    {
        addfams(famnames, dragonfams[i], dragonfams[i]);
    }
} else if (clansddvalue = "Lion") {
for (var i=0; i < lionfams.length;++i)
    {
        addfams(famnames, lionfams[i], lionfams[i]);
    }
} else if (clansddvalue = "Mantis") {
for (var i=0; i < mantisfams.length;++i)
    {
        addfams(famnames, mantisfams[i], mantisfams[i]);
    }
} else if (clansddvalue = "Phoenix") {
for (var i=0; i < phoenixfams.length;++i)
    {
        addfams(famnames, phoenixfams[i], phoenixfams[i]);
    }
} else if (clansddvalue = "Scorpion") {
for (var i=0; i < scorpionfams.length;++i)
    {
        addfams(famnames, scorpionfams[i], scorpionfams[i]);
    }
} else if (clansddvalue = "Unicorn") {
for (var i=0; i < unicornfams.length;++i)
    {
        addfams(famnames, unicornfams[i], unicornfams[i]);
    }
} else if (clansddvalue = "Imperial") {
for (var i=0; i < imperialfams.length;++i)
    {
        addfams(famnames, imperialfams[i], imperialfams[i]);
    }
} else if (clansddvalue = "Badger") {
for (var i=0; i < badgerfams.length;++i)
    {
        addfams(famnames, badgerfams[i], badgerfams[i]);
    }
} else if (clansddvalue = "Dragonfly") {
for (var i=0; i < dragonflyfams.length;++i)
    {
        addfams(famnames, dragonflyfams[i], dragonflyfams[i]);
    }
} else if (clansddvalue = "Hare") {
for (var i=0; i < harefams.length;++i)
    {
        addfams(famnames, harefams[i], harefams[i]);
    }
} else if (clansddvalue = "Monkey") {
for (var i=0; i < monkeyfams.length;++i)
    {
        addfams(famnames, monkeyfams[i], monkeyfams[i]);
    }
} else if (clansddvalue = "Oriole") {
for (var i=0; i < oriolefams.length;++i)
    {
        addfams(famnames, oriolefams[i], oriolefams[i]);
    }
} else if (clansddvalue = "Ox") {
for (var i=0; i < oxfams.length;++i)
    {
        addfams(famnames, oxfams[i], oxfams[i]);
    }
} else if (clansddvalue = "Sparrow") {
for (var i=0; i < sparrowfams.length;++i)
    {
        addfams(famnames, sparrowfams[i], sparrowfams[i]);
    }
} else if (clansddvalue = "Tortoise") {
for (var i=0; i < tortoisefams.length;++i)
    {
        addfams(famnames, tortoisefams[i], tortoisefams[i]);
    }
} else if (clansddvalue = "Monk") {
for (var i=0; i < monkfams.length;++i)
    {
        addfams(famnames, monkfams[i], monkfams[i]);
    }
} else if (clansddvalue = "Ronin") {
for (var i=0; i < roninfams.length;++i)
    {
        addfams(famnames, roninfams[i], roninfams[i]);
    }
} else if (clansddvalue = "Merchant") {
for (var i=0; i < merchantfams.length;++i)
    {
        addfams(famnames, merchantfams[i], merchantfams[i]);
    }
} else {
    for (var i=0; i < nothin.length;++i)
    {
        addfams(famnames, nothin[i], nothin[i]);
    }
}
}

我也将完全承认我编写的代码足以让一个新人可以剖析它,但这并不是最有效的。 感谢您提供的任何帮助。

对于此问题的正面,链接为http://www.fiveringsonline.net/charsheet.php

更改此 var clansddvalue = clansdd.text; var clansddvalue = clansdd.value; 没有名为.text属性可供选择。 而且更重要的是,将值与=====进行比较。 不要在if语句中使用= 它是赋值运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM