javascript - 使用 Javascript 修改选择字段选项

标签 javascript forms selection appendchild

我正在尝试创建一个 Javascript 函数,它将从一个选择字段中获取值,然后使用它来比较 JSON 数组。如果任何数组元素与用户选择的值匹配,则该函数会将这些值添加到另一个选择字段。

逻辑:

  • 使用“onchange”HTML 属性激活函数
  • 从选择字段中获取用户选择的值
  • 将此值与 JSON 数组进行比较
  • 如果数组值==选择值,附加到其他选择字段

代码:

//this function modifies a select field depending on what value was selected by its predecessor
        function tariffs()
        {   
            //variable selection equals the selected value chosen by the user in that field
            var selection = document.getElementById('tariff_net').options[document.getElementById('tariff_net').selectedIndex].value

            //for loop to go through JSON values to compare with the value chosen by the user
            for(var i = 0; i < values.preset_name.length ; i++)
                {
                    //if the JSON value equals the user selected value
                  if (values.preset_name[i] == selection)
                    {   
                        //append it to the "tariff_name" select field
                        var option = values.preset_name[i];
                        var selectfield = document.getElementById('tariff_name');
                        selectfield.appendChild(option);
                    }
                }


        }

这是显示两个选择字段的屏幕截图(顶部的那个会影响底部的选择字段选项)

http://i.imgur.com/B0eHS.png

enter image description here

目前我的代码不工作,我收到一个 Javascript 错误:

Could not convert JavaScript argument arg 0 [nsIDOMHTMLInputElement.appendChild] [Break On This Error] selectfield.appendChild(option);

我还想知道如何让 Javscript 刷新所有值的选择字段,然后重新填充它。这将防止在调用函数时大量积累重复选项。

谢谢

最佳答案

appendChild接受一个元素,而不是一个字符串。选择选项有一个构造函数来帮助你:

var option = new Option(values.preset_name[i]); //Dom element instead of a string
var selectfield = document.getElementById('tariff_name');
selectfield.appendChild(option);

关于javascript - 使用 Javascript 修改选择字段选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833196/

相关文章:

qt - 查找所有需要的字符串并使用 QPlainTextEdit::setExtraSelections() 选择它们

javascript - 将元素放置在容器中

javascript - 等到所有ajax请求都完成

javascript - Onclick javascript 停止在 Chrome 中提交表单

jquery选择,加id只是为了方便选择,好不好?

jquery - 无法使用 jQuery 操作 EditForm.aspx 中的输入

javascript - D3 圆形包布局鼠标悬停事件被多次触发

javascript - 在 Highcharts 中添加额外的工具提示

javascript - 使用 JS 更改页面背景颜色的最快方法?

php - 在页面之间来回发送 PHP 变量