Пользователь должен иметь выбор для ввода или выпадающего - PullRequest
0 голосов
/ 07 августа 2011

Идея в том, что пользователь может иметь только один выбор для текстового поля ввода с идентификатором itemURL или сделать выбор для contentPageID. Если пользователь начинает вводить ответ в itemURL, он возвращает раскрывающийся список contentPageID к 0 для значения, которое является опцией - Выбрать - для текстового параметра. Если пользователь затем передумает и начнет делать выбор с помощью выпадающего списка, он очищает значение текстового поля itemURL. Я использовал следующий код, однако я использую niceforms, и он должен быть манипулирован немного больше и не уверен, как.

$('contentPageID, itemURL').change ( function () { 
if ( $(this).is ('select') ) {
    $('itemURL').val ("");
}
else {
    $('contentPageID').val (0);
}
} );

У меня есть функция сброса, которая использует это, чтобы убрать выпадающий список, но не уверена, как включить это в то, что я хочу сделать.

$('select').each(function(){
                        var option = $('option:selected', this).html();
                        var niceselect = $(this).parents('dd').find('.NFSelectRight');
                        niceselect.html(option);
                        $(this).parents('dd')
                        .find('.NFSelectTarget a')
                        .removeClass('NFOptionActive')
                        .filter(':first').addClass('NFOptionActive');
                    }); 

1 Ответ

1 голос
/ 07 августа 2011

Я использую niceforms, и его нужно манипулировать немного больше, и я не знаю, как.

мой предыдущий код:

function updateNiceformSelect() {

    $('select.NFhidden').each(function(){
        var option = $('option:selected', this).html();
        var niceselect = $(this).parents('dd').find('.NFSelectRight');
        niceselect.html(option);

        $(this).parents('dd')
            .find('.NFSelectTarget a')
            .removeClass('NFOptionActive')
            .each(function(){
                if($(this).html() == option)
                    $(this).addClass('NFOptionActive');
            });
    });
};

Обновляет niceformsselect к значению базового html select.

http://jsfiddle.net/Jacek_FH/EwpXp/14/

Niceform использует собственные входные данные, поэтому их не нужно обрабатывать отдельно

/ edit

весь рабочий код: http://jsfiddle.net/Jacek_FH/YvGDH/5/

Было сложнее, чем я думал

...