当选择默认选择选项时,如何防止JQUERY change()函数触发

时间:2014-07-11 11:47:45

标签: javascript jquery html

当我从下拉菜单中选择默认选择选项时,我想阻止我的JQUERY change()函数触发。但是,如果选择了下拉菜单中的任何其他选项,我希望触发该功能。

在下面的示例中,Andorra是默认选择选项,因此我希望在从下拉列表中选择任何其他国家/地区时触发change()函数。

  

HTML

<select id="customer_country" name="customer_country"
class="validate[required] input_styling target"
style="background: #FFFFFF;">
                <option value="">Please Select a Country</option>
                <option value="Afghanistan">Afghanistan</option>
                <option value="Åland Islands">Åland Islands</option>
                <option value="Albania">Albania</option>
                <option value="Algeria">Algeria</option>
                <option value="American Samoa">American Samoa</option>
                <option value="Andorra" selected>Andorra</option>
...

</select>
  

JQUERY

$(document).ready(function(){
    // show popup when selecting a country from the drop-down
    $( ".target" ).change(function() {
        var docHeight = $(document).height(); //grab the height of the page
        var scrollTop = $(window).scrollTop(); //grab the px value from the top of the page to where you're scrolling
        $('.overlay-bg').show().css({'height' : docHeight}); //display your popup and set height to the page height
        $('.overlay-content').css({'top': scrollTop+20+'px'}); //set the content 20px from the window top
    });

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

将函数包装在if语句中,将默认值(“”)与所选值

进行比较
  $( ".target" ).change(function() {
     if($(this).val() != "") {
        var docHeight = $(document).height();
        var scrollTop = $(window).scrollTop(); 
        $('.overlay-bg').show().css({'height' : docHeight}); 
        $('.overlay-content').css({'top': scrollTop+20+'px'});
     }
    });

如果需要帮助澄清,可以使用JSFiddle(我简化了.change(),但你明白了。)