Jquery Traversing - PullRequest
       6

Jquery Traversing

1 голос
/ 25 июня 2009

Я использую JQuery для отображения модального диалогового окна. Диалоговое окно имеет элемент управления загрузкой файлов и кнопку загрузки. Также он содержит две кнопки для сохранения и отмены.

Мне нужно сделать контроль загрузки файлов обязательным. Я могу пройти через элемент управления файлом и получить путь, используя $ (Это) .parent () братья и сестры () дети () получаем (1) .Value...; и отобразить сообщение об ошибке при нажатии кнопки загрузки. Но я хочу показать ту же ошибку, что и для кнопки сохранения.

Нужна помощь для перехода от кнопки сохранения, поскольку я создал кнопку вместе с диалоговым окном, например

$("#dialog").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 500,
    width: 600,
    modal: true,            
    buttons: {
        Cancel: function() {                    
        $(this).dialog('close');                    
        },
        'Save': function() {}
    }
});

1 Ответ

1 голос
/ 25 июня 2009

Из вашего примера кода похоже, что this внутри обработчиков отмены и сохранения является элементом #dialog, так что вы можете перейти ко всем его дочерним элементам. Однако было бы гораздо надежнее использовать селектор вместо обхода. Что-то вроде $(this).find(':file').val() должно работать.

Использование селекторов сделает ваш код более устойчивым, так как он будет продолжать работать, даже если вы добавите в свой диалог дополнительные элементы. Как отмечают некоторые комментаторы, присвоение элементу управления загрузкой файла уникального идентификатора облегчит его выбор с помощью простого селектора. Если вам нужен код для работы с несколькими диалоговыми окнами с разными идентификаторами для поля загрузки, вы можете использовать класс или другие конкретные селекторы, такие как селектор : file , упомянутый выше, в сочетании с методом .find в конкретный контекст.

Чтобы помочь вам в дальнейшем, нам может понадобиться немного больше контекста, например, содержание содержимого элемента #dialog. Возможно, было бы полезно упомянуть плагин jQuery, который определяет метод .dialog.

...