我有一个“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”可能有效,但我看不出它对各个选项的作用。
有关如何做到这一点的任何想法?谢谢!
答案 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。