用jquery+.net做三级联动出现的问题,第二个下拉框在特定情况下不触发onchange事件,求帮助

lengcoffeecat 2010-10-08 10:22:54

//绑定省份下的城市
$('#SelProvince').change(function() {
// $('#SelArea').attr('disabled', 'disabled');
AjaxRequstFn('SelProvince', 'SelCity', 'bigtype','bid2');
ClearData('SelArea');
$('#SelCity').val('0');

});
//绑定城市下的地区
$('#SelCity').change(function() {

AjaxRequstFn('SelCity', 'SelArea', 'type','bid');
});

以上是js代码,具体的执行不贴了,因为不是问题的重点


<asp:ListBox ID="SelProvince" runat="server" Width="250" Height="220">
<asp:ListItem Text="请选择" Value="0"></asp:ListItem>
</asp:ListBox>
  
<asp:ListBox ID="SelCity" runat="server" Width="250" Height="220" >
<asp:ListItem Text="请选择" Value="0"></asp:ListItem>
</asp:ListBox>
  
<asp:ListBox ID="SelArea" runat="server" Width="250" Height="220">
<asp:ListItem Text="请选择" Value="0"></asp:ListItem>
</asp:ListBox>

这三个是前台,本来三级联动是没有问题的,问题出在这里,(有点绕的说)
当选择第二个列表框的某一个值后,会被触发onchange事件二为第三个表框绑定新值,
但是这时,如果再重新选择一下第一个列表框的值,然后不选择第二个列表框,直接再选回第一个列表框之前的值,
这时第三个列表框是被清空的,然后再选择第二个列表框的之前选中的那个值时,onchange事件不触发!如果选了其他的值,就可以触发,感觉好像是第一次选择第二个列表框后程序还一直记得它的值,虽然后来更换过一级菜单,二级列表框虽然值都换了,但是没有点击,所以程序还一直会保留之前的值,我试过在一级列表框onchange事件里的最后设置上二级列表框的值为0,但是不管用!这是bug啊…… 求助求助
...全文
549 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxianyuan 2011-09-23
  • 打赏
  • 举报
回复
为什么呢,因为选中之前的值 所以没有change 怎么会触发呢
damjmk2 2010-10-29
  • 打赏
  • 举报
回复
选择第一个列表的时候 把第2个与第3个 列表的数据都清空 并且为第2个列表绑定数据
选择第二个列表的时候 把第3个列表数据清空 并且为第3个绑定数据

如果第一个列表里面没有值,最好把第2个列表和第3个列表灰化或者清空

第2个列表没有值 把第3个列表灰话或者清空

如果你是这样做的话,那应该不会有错

lengcoffeecat 2010-10-29
  • 打赏
  • 举报
回复
问题是哪儿的逻辑有问题?就是触发onchange后绑定数据,可是onchange在这种情况下不被触发啊…… 我不知道怎么解决……
damjmk2 2010-10-29
  • 打赏
  • 举报
回复
我觉得这应该还是你实现代码的逻辑问题
lengcoffeecat 2010-10-29
  • 打赏
  • 举报
回复
……还是没人么
lengcoffeecat 2010-10-29
  • 打赏
  • 举报
回复
清空了,都清空了再绑定的,第二个列表绑定后默认选中的是第一个请选择值为0,
但是选择第二个列表的刚才绑定之前选中的值还是不触发onchange
lengcoffeecat 2010-10-08
  • 打赏
  • 举报
回复
没人吗…… 拜托帮我看看吧
代码下载地址: https://pan.quark.cn/s/f772f44531a5 FFmpeg 是一款功能丰富的开源命令行软件,能够对多种类型的多媒体数据,涵盖音频及视频内容,进行操作。它具备多种能力,例如进行格式转换、合并不同媒体、分割文件、执行编码与解码处理、以及实现流媒体传输等。在此特定情境下,主要探讨如何运用 FFmpeg 来处理 MP4 文件的播放难题,特别是那些无法通过流式传输正常播放的文件。MP4 文件播放时可能遇到的障碍,可能是由播放器不兼容的编码方式、容器结构错误、元数据位置设置不当,或是缺少必要的流信息所导致。FFmpeg 能够协助我们识别并修正这些问题。 1. **针对 MP4 文件的检测与修复**:借助 FFmpeg 的 `-i` 参数,可以获取 MP4 文件的详细资料,例如: ``` ffmpeg -i problematic.mp4 ``` 若发现编码方式、时间轴或容器结构存在问题,可尝试对文件进行重新封装(remuxing)或重新编码(transcoding)。例如,通过简单的重新封装操作: ``` ffmpeg -i problematic.mp4 -c copy fixed.mp4 ``` 此指令将维持视频和音频流的原状,仅更换文件的容器格式。 2. **应对流传输挑战**:当文件无法以流方式播放时,通常是因为流信息未正确嵌入文件头部。FFmpeg 可用于解决该问题: ``` ffmpeg -i problematic.mp4 -movflags +faststart output.mp4 ``` ...

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧