2013-07-22 107 views
0

我有一個包含下列值的選擇列表:獲得選擇選項的文本

<select id="selectOption"> 
<option value="10">within 10 miles</option> 
<option value="25">within 25 miles</option> 
<option value="50">within 50 miles</option> 
<option value="100">within 100 miles</option> 
<option value="250">within 250 miles</option> 
<option value="500">within 500 miles</option> 

我使用jQuery獲得選擇選項的文本時,已經做出選擇,然後分配選擇選項值的變量:

alert($j("select option:selected").text()); 
    if($j("select option:selected").text() == 'within 10 miles'){ 
     distance = $j("select option:selected").val() 
    } 
    if($j("select option:selected").text() == 'within 25 miles'){ 
     distance = $j("select option:selected").val() 
    } 
    if($j("select option:selected").text() == 'within 50 miles'){ 
     distance = $j("select option:selected").val() 
    } 
    if($j("select option:selected").text() == 'within 100 miles'){ 
     distance = $j("select option:selected").val() 
    } 
    if($j("select option:selected").text() == 'within 250 miles'){ 
     distance = $j("select option:selected").val() 
    } 
    if($j("select option:selected").text() == 'within 500 miles'){ 
     distance = $j("select option:selected").val() 
    } 

    alert(distance); 

的瘋狂事情是這樣的作品在我的開發組織,但是當我把它給我的暫存區域也不再起作用。我得到吐出回給我下面的值時,我顯示警報:

「SearchAllwithin100英里」

應該僅僅是:

的「100英里範圍內」哪裏是額外的「搜索所有」文本來自?????我找不到來自哪裏?

任何幫助表示讚賞。 謝謝!

+4

爲什麼你使用'if'語句時,你做的每一個同樣的事情選定的指標值?而你的警報只應該根據這段代碼返回一個數字。 – tymeJV

+0

你能展示更多的HTML嗎?我的猜測是,「搜索全部」在頁面中的其他地方使用,並以某種方式被添加,但很難說如何/何地沒有看到代碼。 – talemyn

+2

而你可能有另一個選擇元素的選擇選項是「搜索所有」 – adeneo

回答

0

您可以直接獲得通過使用下面的代碼

$(document).ready(function() 
{ 
    $('#selectOption').change(function() 
    { 
     var dis = $('#selectOption').val(); 
    }); 
}); 
0

您可能有其他select在您的網頁上使用id作爲選擇器。

不需要if conditions。試試這個:

alert($('#selectOption option:selected').text()); 
distance = $('#selectOption option:selected').val(); 
alert(distance); 
+0

'$('#selectOption')。text()錯了。這將返回**整個選項的文本**。 – Praveen

+0

@ user1671639感謝您指出我已用'$('#selectOption option:selected')更新了答案。text()' –

+0

謝謝大家!我很感激幫助。使用更改事件處理程序確實有效。有一個問題,我必須將更改函數放在頁面頂部的文檔就緒函數中。如果我將change事件處理程序放在我最初擁有if語句的單獨的javascript函數中,它不會觸發。我是jquery的新手,所以任何人都可以解釋爲什麼? – Dman100

0

我不知道爲什麼你要選擇附有所有選項都。也許由於錯誤,您可能會在其中包含該文本。

既然你是jQuery,去找.change事件處理程序。

我認爲你甚至不需要if..else..聲明。

$(document).ready(function(){ 
    $('#selectOption').on('change', function() { 
    //---- Todos 
    $(this).find('option:selected').text(); //get the selected option's text 
    var distance = $(this).find('option:selected').val(); //get the selected option's value  
    // or even $(this).val(); 
    alert(distance); 
    }); 
}); 

入住這JSFiddle

0

如果你只是想選擇的值就用

var distance = $j("#selectOption").val() 

,並沒有必要選擇文本,然後值。