javascript – jqtransform表单选择器(onchange)问题!

我正在使用Jqtransform脚本设置表单样式.
该表单包含一个选择器,用于登记某些城市,当我点击一个城市时,它应该更新该城市内的某些位置的选择器.

这是选择器的代码

<select name="city" id="city" class="wide" onchange="populateDestrict(this)"> 

它在默认样式下工作正常,但在应用JQ之后,它失去了它的功能

我在这之前问了一个问题LINK

我按照Dormilich所做的那样写作:

     $(function() { 
$("form.jqtransform").jqTransform();
$("#city").change(populateDestrict(this)); 
}); 

但它不起作用!

如果它有帮助,这里也是函数的代码

<script language="javascript">
    function populateDestrict(obj){
        var city=obj.value;
            if(city!=""){
                $.post('city_state.php',{ city: city},function(xml){ 
                    $("#state").removeOption(/./);
                    $("district",xml).each(function() {
                    $("#state").addOption($("key",this).text(), $("value",this).text());
                });
            });
            }
    }
</script>

任何帮助人们????????
谢谢

最佳答案:

您可能会遇到< select>具有<选项>的元素标签与值不同的元素.例如,您可能拥有与每个城市对应的唯一ID:

<form id="formTransform">   
   <div id="boxRelated">
      <select name="city">
         <option value="21">Gotham</option>
         <option value="12">New York City</option>
         <option value="34">Smallville</option>
      </select>
      <div class="clear"></div>   
   </div> 
</form>

只需在jqTransform列表中的选定链接上调用.text()即可获得标签,但不会显示< option>的值.元件.

要解决此问题,您可以使用父< li>的索引. jqtransform列表中的元素索引到< select>表格上的元素:

<script> 

   $("#formTransform").jqTransform();

   $("#boxRelated div.jqTransformSelectWrapper ul li a").click(function(){
      var value = $(this).parent().index();
      $("[name=city]").attr('selectedIndex', value);

      // will alert 21, 12, or 34 depending on which one was selected
      alert($("[name=city]").val()); 
      return false; 
   }); 

</script>
上一篇:javascript – onclick事件在onchange之前触发时未触发


下一篇:Collection和Map