我在asp.net上创建了一个网站,我有2个列表框:
lbxPlayer1 and lbxPlayer2
lbxPlayer1.Items.Add("bob");
lbxPlayer1.Items.Add("jack");
lbxPlayer1.Items.Add("sam");
lbxPlayer2.Items.Add("fred");
lbxPlayer2.Items.Add("brian");
lbxPlayer2.Items.Add("dave");
他们都填充了相同数量的值,我希望这样,当点击其中一个列表时,另一个列表将选择相同的索引。
我该怎么做?我假设代码将在lbxPlayer1_SelectedIndexChanged事件中?
所以当我点击“jack”时,我也希望“Brian”也被选中。
我现在意识到这不是想要在服务器端完成但是在客户端,所以我想要一些帮助使用javascript来做到这一点; 到目前为止,我一直在lbxPlayer1_SelectedIndexChanged事件中测试这段代码
lbxPlayer1.Attributes["onchange"] = "function{alert('Hello');}";
上面的代码只是一个测试人员,但我甚至无法让它工作?
答案 0 :(得分:3)
试试
lbxPlayer1.Attributes["onchange"] = "changeindex(this) ";
在像这样的HTML javascript中
function changeindex (obj) {
var index = obj.selectedIndex;
var select= document.getElementById('listbox2');
select.selectedIndex = index;
}
答案 1 :(得分:0)
Yu应该知道使用javascript的jQuery框架。这是一个框架
使用典型的javascript DOM元素
lbxPlayer1.Attributes["onchange"] = "lbxPlayer1SelectedChange(this) "; //declaration of event
function lblPlayer1SelectedChange(element){
document.getElementById("lbxPlayer2").selectedIndex = element.selectedIndex;
}
使用jQuery。声明事件和功能
$('.lbxPlayer1').change(function() {
$('.lbxPlayer2 option')[this.selectedIndex].attr('selected','selected');
});
答案 2 :(得分:0)
好的家伙感谢您的回复,但是我无法让您的代码与我的项目一起工作(没有错误,没有发生任何事情)。 但是你的代码给了我一些想法和解决方案:
我添加了这两个javascript函数
<script>
function ChangePlayer2Lbx()
{
var player1 = document.getElementById("lbxPlayer1");
var player1index = player1.selectedIndex;
var player2 = document.getElementById("lbxPlayer2");
player2.selectedIndex = player1.selectedIndex;
}
function ChangePlayer1Lbx()
{
var player2 = document.getElementById("lbxPlayer2");
var player2index = player2.selectedIndex;
var player1 = document.getElementById("lbxPlayer1");
player1.selectedIndex = player2.selectedIndex;
}
</script>
我只是将其添加到每个列表框html属性中。
onClick="ChangePlayer2Lbx()"
感谢您的所有快速回复以及我现在想要的工作方式:)