2015-11-26 98 views
1

I`ve一個「選擇」:選擇具有空值

<select class="date-select2" name="date"> 
    <option selected="selected" value="">All</option> 
    <option value="11-2015">11-2015</option> 
    <option value="10-2015">10-2015</option> 
    <option value="09-2015">09-2015</option> 
    <option value="07-2015">07-2015</option> 
    <option value="06-2015">06-2015</option> 
    <option value="04-2015">04-2015</option> 
    <option value="03-2015">03-2015</option> 
</select> 

當我真的嘗試獲得的選擇值,

document.getElementsByClassName('date-select2')[0].value 

它通常返回所選項目的值鉻。在FF和Safari中,當選擇一個數值(不是「全部」)時,它有時會返回一個空字符串。 如何處理它?

+5

什麼是您嘗試使用過的JavaScript代碼? – divy3993

回答

1

我想這可能會幫助您:

HTML

<select class="date-select2" name="date" onchange="myFunction(this.value)"> 
    <option selected="selected" value="">All</option> 
    <option value="11-2015">11-2015</option> 
    <option value="10-2015">10-2015</option> 
    <option value="09-2015">09-2015</option> 
    <option value="07-2015">07-2015</option> 
    <option value="06-2015">06-2015</option> 
    <option value="04-2015">04-2015</option> 
    <option value="03-2015">03-2015</option> 
</select> 

的JavaScript

function myFunction(curValue) { 
    alert(curValue); 
} 

Working : Fiddle

注:還記得把你的JavaScript代碼裏面body也是它結束前的。

+0

這太好了,但如果我想用此選擇序列化表單?我需要讓這個選擇以正確的方式工作 – Ivan

+0

對不起,我不明白你想說什麼。 – divy3993

+0

好吧,我很明白方向來處理這個 – Ivan

-1

你可以試試這個方法來獲得選擇的項目:

$(".date-select2 option:selected").text(); 
+0

這是jQuery,而不是Javascript。 –

0
var select = document.querySelector('select.date-select2'); 

// add onchange handler 
select.onchange = function(){ 
var idx = select.selectedIndex; 

var val = select.options[idx].value; 
// if All is selected use text of option 
    if(val=="") 
    val = select.options[idx].textContent; 

};