0

我有两个组合框:

<select ID="combobox1"></select>
<select ID="combobox2" onChange="get_function(this, #combobox1)"></select>

我想要做的是,将 combobox1 上选择的值传递给 combobox2 并调用 Javascript 函数:

function get_function(combobox1, combobox2)
{
var code1 = combobox1.value;
var code2 = combobox2.value;
if (!code1) return;
if (!code2) return;
alert(code1 + '-' + code2);
}

我已经尝试过该代码,但它不起作用。我怎样才能做到这一点?


更新

问题通过以下方式解决:

<select ID="combobox1"></select>
<select ID="combobox2" onChange="get_function(this, "combobox1")"></select>

function get_function(combobox1, combobox2)
{
var code1 = combobox1.value;
var code2 = document.getElementById(combobox2);
if (!code1) return;
if (!code2) return;
alert(code1 + '-' + code2);
}
4

3 回答 3

0

我建议(如果您必须使用内联 JavaScript):

function get_function(combobox1, combobox2) {

    var code1 = document.getElementById(combobox1).value,
        code2 = combobox2.value;

    if (!code1 || !code2) {
        return false;
    }

    else {
        alert(code1 + '-' + code2);
    }

}

并像这样调用该函数:

<select id="combobox1"></select>
<select id="combobox2" onchange="get_function('combobox1', this)"></select>

JS 小提琴演示

在您的原始 HTML 中,您使用错误顺序的参数调用函数,并且第二个参数(这是id第一个元素的)使用未加引号的字符串。另外,据我所知,您并没有尝试使用 that 获取对相关 DOM 节点(元素本身)的引用id,您只是在使用id(一个未加引号的字符串,因此被解释为不存在全局变量)直接。这永远行不通。

于 2012-09-04T01:51:46.923 回答
0

演示:

function get_function(el, to_el_id) {
  var to_el = document.getElementById(to_el_id);
    if (to_el) {
        to_el.value = el.value;
    }
}​
于 2012-09-04T01:52:17.157 回答
0
<select ID="combobox1"></select>
<select ID="combobox2" onChange="get_function(this, "combobox1")"></select>

function get_function(combobox1, combobox2)
{
  var code1 = combobox1.value;
  var code2 = document.getElementById(combobox2);
  if (!code1) return;
  if (!code2) return;
  alert(code1 + '-' + code2);
}
于 2012-10-20T06:33:14.347 回答