表单验证后丢失OnChange

时间:2010-07-06 04:09:18

标签: validation forms codeigniter onchange

我正在使用codeigniter,当选择下拉表单onchange工作时,我得到我的第二个字段ok(Country-> City)。 当我提交有错误的表单时,页面会重新加载并显示错误,但我的onchange停止工作。 对于发生了什么的任何想法? 嗯,这就是我正在做的事情。用户进入主页并填写表单,onchange正在运行。然后用户提交带有错误的表单,我检查验证并加载具有相同onchange函数的新页面(寄存器)。我试图将函数名称(getLocal)更改为另一个名称,但结果是相同的。尝试使用live。(“更改”,getLocal),结果是一样的,没有在注册页面上触发......

 
function getLocal(){
    $("#city").load("home/ajaxlocal", {country: $(this).val()} );
   //alert($(this).val());

    return false;
}

..............

$js = 'id="country"';
    
    $(document).ready(function() {
    $("#country select").bind("change", getLocal);
        });
    
td echo form_label('Country :', $country); 
td id="country">echo form_dropdown('country', $country,$ct,$js);

1 个答案:

答案 0 :(得分:1)

如果您没有重新加载页面,但是使用AJAX重新加载元素,那么如果您在ready()函数中指定它们,则jquery将不会绑定到这些新元素。

$(document).ready(function() {
    $("#country select").bind("change", getLocal);
});

这是加载此onload - 尝试使用.live()

http://api.jquery.com/live/

  

此方法是用于将事件处理程序附加到元素的基本.bind()方法的变体。当调用.bind()时,jQuery对象引用的元素将附加处理程序;后来介绍的元素没有,所以他们需要另一个.bind()调用。