Javascript:通过选项元素和“onchange”传递数据

时间:2013-11-19 16:32:10

标签: javascript html function

我有一个“select”元素,由PHP文件填充。输出是一个包含姓名,地址,城市,州等的位置列表。我想在更改此下拉列表时将新地址加载到地址表单中。

以下是我想要开始工作的代码,这可能会更好地解释这一点:

<select name='address' id='address'>
    <option value='0' onselect='clearAddress()'></option>
    <option value='1' onselect='loadAddress("1 Main St", "New York")'>Mark's House</option>
    <option value='2' onselect='loadAddress("5 Arc Rd", "Orlando")'>Bob's Apt</option>
    <option value='3' onselect='loadAddress("2 Fox Ln", "Clinton")'>Joe's Bar</option>
</select>

我知道onselect在这里不起作用,虽然在select元素中添加“onchange”可能有效,但我看不出它对各个选项的作用。

有关如何做到这一点的任何想法?谢谢!

1 个答案:

答案 0 :(得分:2)

可能不是一个合适的解决方案,但您可以通过

进行
<select name='address' id='address' onchange="doCall(this)">
    <option value='0' data-load=''></option>
    <option value='1' data-load='1 Main St,New York'>Mark's House</option>
    <option value='2' data-load='5 Arc Rd,Orlando'>Bob's Apt</option>
    <option value='3' data-load='2 Fox Ln,Clinton'>Joe's Bar</option>
</select>

function doCall(elt) {

   var params = elt.options[elt.selectedIndex].getAttribute("data-load").split(",");

   alert(params[0]);
   alert(params[1]); 

}

这里是a fiddle