Как получить выбранные значения из раскрывающегося списка в filterToolbar с помощью jquery

Я хочу отфильтровать сетку на основе выбранного значения в filterToolbar.

Это моя сетка

<sjg:gridColumn name="assigned_to"   index="assigned_user" key="assigned_user" title="Assigned To"   
            sortable="false"
            searchtype="select"
            searchoptions="{defaultSearch:'cn', dataUrl : '%{fillUser}', 
                           dataEvents: [{ type: 'change' fn: function(elem) { myfunction(elem)}}]}"/>

Итак, проблема

1: как получить выбранные значения из выпадающего списка в функции myfunction(elem), которая запускается с использованием dataEvents.

2: что такое elem в этих параметрах dataEvents?


person arvin_codeHunk    schedule 23.02.2013    source источник


Ответы (1)


Обычно используется имя event или e в качестве имени параметра функции fn, потому что параметр Объект события jQuery. Самое важное его свойство if target, которое будет DOM-элементом select (см. здесь). Таким образом, вы можете использовать selectedIndex и options для получения информации о выбранной опции:

fn: function (e) {
    var selectDOM = e.target,
        selectedOptionDOM = selectDOM.options[selectDOM.selectedIndex];

    alert("selected option has\n" +
        "text=" + selectedOptionDOM.text +
        "\nvalue=" + selectedOptionDOM.value);
}

В качестве альтернативы вы можете использовать jQuery, чтобы получить выбранный вариант. $(e.target).val() предоставляет значение выбранного параметра, а $(e.target).find(":selected").text() дает вам его текст:

fn: function (e) {
    var $select = $(e.target);

    alert("selected option has\n" +
        "text=" + $select.find(":selected").text() +
        "\nvalue=" + $select.val());
}
person Oleg    schedule 23.02.2013
comment
@arvin_codeHunk: Добро пожаловать! Я рад, что смог тебе помочь. - person Oleg; 25.02.2013
comment
пожалуйста, проверьте этот вопрос также stackoverflow.com/questions /15068668/how-to-load-json-in-jqgrid , я застрял здесь - person arvin_codeHunk; 27.02.2013
comment
@arvin_codeHunk: Я могу повторить только то, что вам лучше использовать reloadGrid вместо ручного вызова $.ajax. Вы можете изменить url или postData, используя setGridParam перед триггером reloadGrid. - person Oleg; 27.02.2013