【问题标题】:Javascript: Populating a html drop-down list based on onchange data from another dropdown usingJavascript:使用另一个下拉列表中的 onchange 数据填充 html 下拉列表
【发布时间】:2011-08-22 13:55:12
【问题描述】:

好的。我已经搜索了几个小时。我似乎找不到这个问题的答案。我尝试了几种不同的输入代码的方法,但我似乎无法完成。所以,就这样吧。

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

基于 pcclan,它是 12 或 13 个选项的下拉列表,它应该通过 if else if 参数,找到合适的氏族,并根据所选氏族填充名为 famnames 的第二个下拉列表。

我已经尝试了我所知道的一切来完成这项工作,但它只是不起作用。所以,我终于来找你们了。我觉得我错过了一些简单的事情。我也觉得它在 if else if 中。我已经尝试了我能想到的所有方法,并且可以找到针对第一个下拉列表 pcclan 的方法。此外,就目前而言,famnames 下拉列表中仅填充了蟹族数组。这是它的代码。

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

【问题讨论】:

    标签: javascript drop-down-menu


    【解决方案1】:

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

    【讨论】:

    • 之前试过了,又试了,还是不行。仍然只填充第一个 if 语句。感谢您的及时回复。还尝试了 options[index].value 定位。
    • 我发现了问题。不仅如此,它还是 Crab if 语句的错误命名变量。泰!如果您的建议没有让我更改 var 名称,我将永远不会发现它!
    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 2017-06-13
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多