想了想,这个和js其实不怎么相关,还是php问题。问题背景:该页面左边是一些记录的列表,右边是很多空框,供填入一些信息,之后保存。然后点击左边记录的其中一项,相关信息就能在右边出现。上述功能我都已经实现了。
问题:右边很多空框中有一项是select下拉列表进行选择哪辆车。我的做法是从数据库中读取carNum(integer类型),以此作为select中option的value,而显示的值是数据库中对应该车辆的licenseNum(车牌号),上述用php循环的方法查询并且实现的。但我用js指定该id的select的值时,该select一点反应没有。我把这个select换成确定的select(即去除php循环,而是在htm中直接设定value和选项名称),则js可以指定该select的值,并显示出该值。但我希望能循环设置该select,而且js能指定该值(显然,这样的话就可以动态显示了。)
该如何解决呢? 撒分,不够的话回帖或者私信给我,可另补。直接上代码:<!---下面是htm直接设定html的select的代码---->
<select id="showOrder_21" name="truck" class="dropdown" style="margin-left:0px !important; border:1px solid #BABABA !important;">
        <option  value ="1">QAZ123</option>
        <option  value ="2">WSX234</option>
        <option  value ="3">EDC345</option>
        <option  value ="4">TGB456</option>
</select></td>
下面是采用循环的方式实现的select: <select id="showOrder_21" name="truck" class="dropdown" style="margin-left:0px !important; border:1px solid #BABABA !important;">
<?php 
$query = "select * from transport.truck order by carNum";
$data = getAll($query);
foreach($data as $each)
{
?>
<option value="<?php  echo $each['carNum'];  ?> "><?php echo $each['licNum'];?></option>
<?php } ?>
</select></td>
下面是我用的js 部分:<script type="text/javascript">
    $(document).ready(function(){
        $(".LeftTask").click(function(){
       
            $(this).css("background","#A8A8A8");
            $(this).siblings().css("background","white");
            var orderID = $(this).find('input').val();
            $.ajax({
                type:"get",
                url:"main/ajax.php",
                data:{
                    orderID:orderID
                },
                success:function(msg){
                    msg = eval("("+msg+")"); 
<!---当中删除大量不相关的显示--->
                    $("#showOrder_21").val(msg.truck);              }
        });
    });});    
</script>大牛们,求指导!!!
怎么解决这个问题呢?求关键代码片段或网上案例,万分感谢!!!

解决方案 »

  1.   

    $(".LeftTask").click(function(){改成$(".LeftTask").live("click",function(){  ....... 后者的优势是可以"即使某dom节点是页面载入完成之后生成的,也能绑定事件".参阅jquery手册.
      

  2.   

    另外更好的办法是在动态生成的html标签中使用onclick="xxxxxxxx()"这种形式  好处是不像live那样耗费浏览器资源
      

  3.   


    出错信息:
    Line: 408
    Error: Object doesn't support property or method 'live'可能是我在head里面设置的版本问题。
    前两天你给我的checkbox中的attr也出错了,最后换成最新版本中prop,才最终成功。
      

  4.   

    <option value="<?php  echo $each['carNum'];  ?> "><?php echo $each['licNum'];?></option>
    中间多了个空格!
    <option  value ="1">QAZ123</option>
    变成了
    <option  value ="1 ">QAZ123</option>
    不出问题才怪呢