链接选择框不起作用

时间:2012-06-26 14:45:04

标签: javascript jquery

我有三个选择框州,城市和地区,其ID与名称相同

$(document).ready(function() {
    $("#state").on('change',function(){
        var state = $("#state").attr('value');
        $("#city").load('http://localhost/trial/index.php/new/view_cities/'+state).change();
    }).change();

    $("#city").on('change',function(){
        var city = $("#city").attr('value');
        $("#locality").load('http://localhost/trial/index.php/new/view_localities/'+city);
    }).change();
});

页面加载状态正确显示,因为它直接来自数据库,城市选项会自动更新,但地区不会。当我改变城市时,地方可以改变。

1 个答案:

答案 0 :(得分:0)

.load()函数只是调用$.ajax()的包装器,它是异步的;如果你试图通过该调用与加载到元素中的元素进行交互,则需要传递一个回调函数,该函数在AJAX请求返回成功响应后执行。

尝试更换:

$("#city").load('http://localhost/trial/index.php/new/view_cities/'+state).change();

$("#city").load('http://localhost/trial/index.php/new/view_cities/'+state, 
function() {
    $("#city").change();
});

还有几点要点:

您可以在函数内使用this来为事件处理程序引用触发事件的元素。而不是:

$("#state").on('change',function(){
    var state = $("#state").attr('value');
你可以这样做:

$("#state").on('change',function(){
    var state = this.value;

此外,如果 要使用jQuery获取元素的值,请使用.val()函数而不是.attr('value')