常用旅客在页面上显示是用程序调取的,放在一个div里面,每个乘客一个div,这个div下面有个checkbox,其实它本身没多大用,就是看起来是勾选了,我把onclick事件和div的onclick事件重叠了。checkbox的代码就是设置了很多额外的属性,把旅客的姓名、证件号、出生年月之类的都放在里面,就这样的:
<input type="checkbox" class="chbAdultCheckBox" name="chbClientName" id="chbClientName_1" value="马儒" sname="唐" passno="123456789" genger="男" birth="1994-01-01" passpic="tangmaru.jpg" mailadd="[email protected]"/>然后点击这个东西,触发一个事件changePassenger(),把这里面的属性填充到下面的表单里面(具体效果可以去携程看看,常用旅客点了以后就有了)。我现在的问题是:如果不区分成人儿童的话,基本没有问题。但是必须要区分成人和儿童还有婴儿。之前写的DOM程序似乎不行,问题很多,比如说勾选3个人,手动添加一个人就出问题,DOM就操作错了。还有个问题是日期控件,不知道为什么只要点击DIV触发的changePassenger,去除hasDatePicker这个类就不起作用了。。这几天被这个功能搞的我头晕。求各位大牛给个比较清晰的解决思路,或者有现成的代码……

解决方案 »

  1.   


    已经搞定了。
    这个思路其实也很麻烦,简单说就是:如果有常用旅客,点击增加对应的乘客类型的DOM,成人就克隆个成人的DOM,儿童就克隆个儿童DOM,婴儿就克隆个婴儿DOM。
    因为datepicker控件的问题,在控制DOM的时候又有了新的麻烦,必须把克隆出来的控件内容全部清除之外,还要重新初始化datepicker控件的class,去掉hasDatePicker类。因为要清除内容,所以这几个新克隆出来的控件ID还要抓到。
    第三个难点,就是点了两个成人旅客,但是要手动输入第三个成人旅客时,前两个不能变,第三个成人旅客DOM克隆,然后如果此时已经有儿童或者婴儿的DOM,这些都不能有变动……昨晚又战斗了3个小时,搞定,对JQuery不熟真是要命了。