我有一个列表框,在特定的选定值上,我想显示一个下拉列表,并从下拉列表中选择一个值,我想显示另一个下拉列表。
我使用jquery实现了这一点,但只有在回发后才会显示下拉列表。如何避免回发?
这是我的jquery代码
<script type="text/javascript">
$(document).ready(function () {
if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) {
$("#ddl_nature1").show();
$("#ddl_gross1").hide();
if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') {
$("#ddl_gross1").show();
}
else {
$("#ddl_gross1").hide();
}
}
else {
$("#ddl_nature1").hide();
$("#ddl_gross1").hide();
}
});
under_list1是我的列表框ID,ddl_nature1是我的第一个下拉列表,ddl_gross1是我的第二个下拉列表。
答案 0 :(得分:1)
您需要在下拉列表更改中添加相同的检查。我在这里将下拉列表的更改放在一个常用函数上,并将其称为下拉列表更改,以及DOM准备好时(后面的帖子后面)。
$('#<%=ddl_nature.ClientID %>').change(function() {
ChangeViews();
});
$(document).ready(function () {
ChangeViews();
});
function ChangeViews()
{
if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) {
$("#ddl_nature1").show();
$("#ddl_gross1").hide();
if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') {
$("#ddl_gross1").show();
}
else {
$("#ddl_gross1").hide();
}
}
else {
$("#ddl_nature1").hide();
$("#ddl_gross1").hide();
}
}
答案 1 :(得分:0)
为什么不使用Ajax PageLoad函数。因为每个PostBack后都会调用pageLoad函数。
function pageLoad()
{
if ($('#<%=under_list1.ClientID %> option:selected').val() == 0) {
$("#ddl_nature1").show();
$("#ddl_gross1").hide();
if ($('#<%=ddl_nature.ClientID %> option:selected').val() == 'I', $('#<%=ddl_nature.ClientID %> option:selected').val() == 'E') {
$("#ddl_gross1").show();
}
else {
$("#ddl_gross1").hide();
}
}
else {
$("#ddl_nature1").hide();
$("#ddl_gross1").hide();
}
}