通过jQuery更改SELECT的值不会触发下一个字段的AJAX

时间:2013-10-19 15:05:34

标签: javascript jquery ajax

我正试图让它当我点击一个链接时,它会改变一个选择字段的值。一旦选择了第一个字段,就会有JS(如下所述)来启用下一个选择字段。这似乎是由'onChange'触发的,所以我认为我的代码会起作用。它确实改变了第一个选择字段中的值,但是除非我手动从第一个选择中选择值并用鼠标单击它,否则不会触发启用第二个选择并获取其值的AJAX。

更改选择点击的值的代码是......

$('.dropdown-element li').click(function(){
    var value = $(this).attr("rel");
    $('#finder-3--16').val(value).trigger('change');
    return false;
});

我试图触发的代码基本上是......

initialize: function(containerId, ajaxUrl, loadingText, isNeedLast)
{
    this.containerId = containerId;
    this.ajaxUrl     = ajaxUrl;
    this.loadingText = loadingText;
    this.isNeedLast  = Number(isNeedLast);
    this.selects     = new Array();

    //possible bug if select order in the HTML will be different
    $$('#' + this.containerId + ' select').each(function(select){
        select.observe('change', this.onChange.bindAsEventListener(this));
        this.selects[this.selects.length] = select;
    }.bind(this));
},

onChange: function(event)
{
    var select     = Event.element(event);
    var parentId   = select.value;
    var dropdownId = 0;

    /* should load next element's options only if current is not the last one */
    for (var i = 0; i < this.selects.length; i++){
        if (this.selects[i].id == select.id && i != this.selects.length-1){
            var selectToReload = this.selects[i + 1];
            if (selectToReload){
                dropdownId = selectToReload.id.substr(selectToReload.id.search('--') + 2);
            }
            break;
        }
    }

任何和所有的帮助都非常感激,因为我很难过!谢谢!

0 个答案:

没有答案