用户必须选择输入或下拉列表

时间:2011-08-06 21:49:55

标签: jquery niceforms

这里的想法是用户只能对idUR为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 个答案:

答案 0 :(得分:1)

我正在使用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');
            });
    });
};

它将niceforms select更新为底层html select的值。

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

Niceform使用原生输入,因此不需要单独处理

/编辑

整个工作代码:http://jsfiddle.net/Jacek_FH/YvGDH/5/

我想的更难了