我正在使用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);
答案 0 :(得分:1)
如果您没有重新加载页面,但是使用AJAX重新加载元素,那么如果您在ready()函数中指定它们,则jquery将不会绑定到这些新元素。
$(document).ready(function() {
$("#country select").bind("change", getLocal);
});
这是加载此onload - 尝试使用.live()
此方法是用于将事件处理程序附加到元素的基本.bind()方法的变体。当调用.bind()时,jQuery对象引用的元素将附加处理程序;后来介绍的元素没有,所以他们需要另一个.bind()调用。