2013-07-22 105 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() 

,并没有必要选择文本,然后值。