Javascript 表单验证失败并重定向/重新加载视图后,带有AJAX下拉菜单的Codeigniter不工作

Javascript 表单验证失败并重定向/重新加载视图后,带有AJAX下拉菜单的Codeigniter不工作,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,验证运行后,将失败,并继续重定向到同一控制器索引 if (!$this->form_validation->run()) { $this->index(); } 表单是一个简单的两个下拉列表,一个依赖于另一个,但是一旦视图被重新加载,第二个依赖的下拉列表就会停止工作 这是JS $(document).ready(function() { $('#manufacturer_dropdown').change(functio

验证运行后,将失败,并继续重定向到同一控制器索引

    if (!$this->form_validation->run())
    {
        $this->index();
    }
表单是一个简单的两个下拉列表,一个依赖于另一个,但是一旦视图被重新加载,第二个依赖的下拉列表就会停止工作

这是JS

    $(document).ready(function()
    {
$('#manufacturer_dropdown').change(function()
{

    $("#sw_names > option").remove();
    var id = $('#manufacturer_dropdown').val();
    $.ajax({
        type: "POST",
        url: "software/get_software_names/"+id,
        datatype : "JSON",

        success: function(sw_names)
        {
            $.each(sw_names,function(id,software_name)
            {
                var opt = $('<option />');
                opt.val(software_name);
                opt.text(software_name);
                $('#sw_names').append(opt);
            });
        }
    });
});
    });
$(文档).ready(函数()
{
$(“#制造商_下拉列表”).change(函数()
{
$(“#软件名称>选项”).remove();
var id=$(“#制造商_下拉列表”).val();
$.ajax({
类型:“POST”,
url:“软件/获取软件名称/”+id,
数据类型:“JSON”,
成功:功能(软件名称)
{
$。每个(软件名称、功能(id、软件名称)
{
var opt=$('');
opt.val(软件名称);
可选文本(软件名称);
$('sw#u name')。附加(opt);
});
}
});
});
});
如果我手动刷新页面,下拉列表将再次工作。不确定发生了什么,可能是document ready函数停止检查或其他什么。我不是JS专家

如果需要,我可以发布更多的代码

编辑:我的JS URL缺少一个/


现在可以工作了

如果您正在发出ajax请求,则必须给出ajax响应

不能在这样的请求中间重定向页面。

我写了一些关于这类问题的文章,因为这是一个很常见的问题。希望这能引导你: