与ajax功能一起使用时,引导程序警报不起作用

时间:2014-05-16 18:10:02

标签: jquery ajax twitter-bootstrap-3

我通过ajax验证表单,现在我已经使用了bootstrap的alert alert-dangeralert alert-success类来提供ui,但是返回,它只是呈现为没有所需ui的简单html,我做错了什么?

$('#url').keyup(function(){
            var val = $('#url').val();
            $.post(
                '<?php echo base_url();?>index.php/validator/check_for_url',
                {ajax:1,url:val},
                function(data){
                    $('#url_feedback').html(data);
                }
            );
        });
// php backend call via ajax
function check_for_url()
    {
        if(isset($_POST['ajax']) && $_POST['ajax'] == 1)
        {
            $url = $_POST['url'];
            if(!preg_match('%^((https?://)|(www\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i', $url))
            {
                echo '<p style="alert alert-danger">Invalid URL, make sure it\'s like http:// or https://</p>';
            }
            else
            {
                $query = $this->db->get_where('users',array('user_url'=>$url));
                if($query->num_rows() > 0)
                {
                    echo '<p style="alert alert-danger">URL Address already exists...</p>';
                }
                else
                {
                    echo '<p style="alert alert-success">URL address can be used...</p>';
                }
            }
        }

    }

1 个答案:

答案 0 :(得分:0)

您应该查看jQuery.ajax()文档中的dataType设置。

  

您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回)。可用的类型(以及作为成功回调的第一个参数传递的结果)是:

我的猜测是你的HTTP服务器由于某种原因没有返回正确的MIME类型,因此jQuery可能会退回到将其视为常规字符串。