2015-01-15 108 views
1

給定的選項我有一個下拉如何選擇下拉

<select id="ddl1"> 
    <option value="0">number</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
</select> 

現在我在做什麼,一旦是用戶點擊ddl1我它的默認值更改爲4這樣

$(function() { 

    var defaultValue = "4"; 

    $('#ddl1').click(function() { 
     var select_val = $('#ddl1').val(); 

     if (select_val == "0") 
      $('#ddl1').val(defaultValue); 
    }); 
}); 

但現在的問題是當用戶試圖選擇下拉的默認選項,即number,選項4被選中。任何想法如何解決這一問題?

的問題是,當用戶只是點擊下拉 - >選項4必須選擇,並且當用戶點擊選項number - >選項number必須選擇替代選項4

+0

你能告訴我們你想要的功能?像你真正想要它做什麼? – indubitablee

+0

@indubitablee:當用戶只需點擊下拉菜單 - >選項'4'必須選擇,當用戶點擊選項'號碼' - >選項'號碼'必須選擇而不是選項'4' ...更新了問題 –

回答

1

不知道你爲什麼這樣做,但focusinfocus事件可以幫助你做到這一點,如下所示:

$(function() { 
 
    $('#ddl1').on('focusin', function() { 
 
     this.value != 0 || $(this).val(4); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="ddl1"> 
 
    <option value="0">number</option> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
    <option value="5">5</option> 
 
    <option value="6">6</option> 
 
    <option value="7">7</option> 
 
    <option value="8">8</option> 
 
</select>

+0

感謝這就是我正在尋找的..但你能解釋一下這條線'this.value!= 0 || $(this).val(4);' –

+1

這只是一種*花哨的寫法'if(this.value == 0){$(this).val(4); }'......它利用了這樣一個事實:在一個「OR」表達式中,只有一個操作數需要爲true才能表達爲真,因此'$(this).val(4)'被評估爲***只有當***'this.value!= 0'爲'false'時。 – PeterKA

+0

okies :),謝謝你的隊友的答案和解釋..wish我可以給你雙倍upvote:p:D –

1

您應該在change而不是click上調用此函數 - 否則,就像您所說的那樣,只要您選擇了一個選項。

$('#ddl1').change(function() { 

DEMO

編輯:您應該使用一個類來給默認選項的感覺,你不會真的想將其設置爲選擇每次用戶點擊:

<select id="ddl1"> 
    <option value="0">number</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4" class="default">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
</select> 

.default { 
    color: blue; 
} 
+0

但在該選項中,當我點擊下拉菜單時,默認情況下未選擇「4」。 –

+0

因此,您希望在單擊下拉列表時突出顯示該選項? @SidM – tymeJV

+0

當用戶只需點擊下拉菜單 - >選項'4'必須選擇,當用戶點擊選項'號碼' - >選項'號碼'必須選擇而不是選項'4' ..更新問題 –

1

這是你在找什麼? http://jsfiddle.net/swm53ran/84/

$(function() { 
    var defaultValue = "4"; 
    var count = 0; 
    $('#ddl1').click(function() { 
     if (count < 1) { 
      $('#ddl1').val(defaultValue); 
      count++; 
     }   
    }); 
}); 
+0

應用計數檢查並不是正確的方法。 –