-2

我对 Jquery 比较陌生,我正在尝试运行一些我遇到问题的 Jquery 代码......

代码确实显示了地区和城市选择框,但是当我选择一个地区时没有任何反应(它应该显示所选地区的城市)......

这就是标签的...

  <script type="text/javascript">
var searchQry = '<?php echo fun_displaysc_js( $searchQry ); ?>' ;

$(document).ready(function(){
    if($('input[name=searchPattern]').val() == searchQry) {
        $('input[name=searchPattern]').css('color', 'gray');
    }
    $('input[name=searchPattern]').click(function(){
        if($('input[name=searchPattern]').val() == searchQry) {
            $('input[name=searchPattern]').val('');
            $('input[name=searchPattern]').css('color', '');
        }
    });
    $('input[name=searchPattern]').blur(function(){
        if($('input[name=searchPattern]').val() == '') {
            $('input[name=searchPattern]').val(searchQry);
            $('input[name=searchPattern]').css('color', 'gray');
        }
    });
    $('input[name=searchPattern]').keypress(function(){
        $('input[name=searchPattern]').css('background','');
    })




    $("#regionId").live("change",function(){
        var reg_code = $(this).val();
        <?php if($path=="admin") { ?>
            var url = '<?php echo func_admin_base_url(true)."?page=ajax&action=cities&regionId="; ?>' + reg_code;
        <?php } else { ?>
            var url = '<?php echo func_base_url(true)."?page=ajax&action=cities&regionId="; ?>' + reg_code;
        <?php }; ?>

        var result = '';

        if(reg_code != '') {

            $("#cityId").attr('disabled',false);
            $.ajax({
                type: "POST",
                url: url,
                dataType: 'json',
                success: function(data){
                    var length = data.length;
                    if(length > 0) {
                        result += '<option selected value=""><?php _display("Select a city..."); ?></option>';
                        for(key in data) {
                            result += '<option value="' + data[key].city_id + '">' + data[key].s_name + '</option>';
                        }

                        $("#city").before('<select name="cityId" id="cityId" ></select>');
                        $("#city").remove();
                    } else {
                        result += '<option value=""><?php _display('No results') ?></option>';
                        $("#cityId").before('<input type="text" name="city" id="city" />');
                        $("#cityId").remove();
                    }
                    $("#cityId").html(result);
                }
             });
         } else {
            $("#cityId").attr('disabled',true);
         }
    });

    if( $("#regionId").attr('value') == "")  {
        $("#cityId").attr('disabled',true);
    }
  });

 </script>
4

2 回答 2

1

您的 ajax 方法是POST,但是您将所有数据放在 url 查询字符串中,使用GET或将data属性添加到您的 ajax 调用中,并将您在查询字符串时使用的参数传递给它。

var url = '<?php echo func_admin_base_url(true); ?>';
...
$.ajax({
    data: "page=ajax&action=cities&regionId=" + reg_code;//or data: {page:"ajax",action:"cities",regionId:reg_code}
于 2012-07-19T06:37:06.957 回答
-1

替换 $("#cityId").remove();$("#cityId").empty();

试试看。

于 2012-07-19T06:59:57.917 回答