使用javascript在选择下拉列表中设置值

问题描述:

尝试在select中设置值时遇到问题。我不断看到的NaN作为我的结果(在某些浏览器 - 主要是Android智能手机/平板电脑的默认浏览器)使用javascript在选择下拉列表中设置值

我运行一个简单的if语句和设定值,如果条件为真:

if (variable1 >= variable2) 
{ 
    $('select[title="title"]').val(variable1); 
} 

凡在if语句显示它们都是数字之前,'typeof'检查变量1和变量2。尽管如此,浏览器中选择的结果值是NaN。

我甚至试过包裹的JavaScript号码周围,像这样的变量()函数:

if (Number(variable1) >= Number(variable2)) 
{ 
    $('select[title="myTitle"]').val(Number(variable1)); 
} 

但我仍然得到同样的结果!

注意:这适用于桌面/笔记本电脑浏览器,甚至在我的三星Galaxy S2上的Opera Mobile,但由于我正致力于这是一个应用程序,可以在我的错误检查中完成任何手机上运行。

编辑: 万一它是我的选择多数民众赞成在问题(如下建议)这里有什么问题吗? 是否因为它在我返回的位置转换为字符串?

var startPoint = this.do_calcTotal(); // typeof startPoint shows as number 
var endPoint = startPoint + 12; // typeof endPoint shows as number 

var mySelect = '<select title="myTitle" class="myClass">'; 

        for (o=startPoint; o<endPoint; o++) 
        { 
         mySelect += '<option>'+Number(o)+'</option>'; // is this right?? it shows 'o' and 'Number(o)' as typeof number!? 
        } 

mySelect += '</select></span></div>'; 

return mySelect; 

编辑:和代码到当前选择的值添加到跨度显示...

function do_changeNumberSpan(value) 
{ 
    $('.mySpan').text(Number(value)); // even tried throwing a Number() round the value here!! 
} 
+0

你说在选择框中显示的值。这是否意味着您看到“NaN”作为您的选择框的选项?这可能意味着问题出在您的选项生成代码上。 – InvisibleBacon

+0

是的。它应该显示一个数字,它显示空白,我显示该值的跨度显示NaN。虽然好想法。我将检查我正在构建选项的循环。 –

+0

@InvisibleBacon确定这是我选择的构建循环。我在这里弄错了什么,或者只是我回来了,它变成了一个字符串而不是价值的事实? –

确定。看看这个jsfiddle。这应该有助于你理解你的目标是什么......以及如何实现它。 http://jsfiddle.net/aaronfrost/yFuyu/

+0

谢谢Aaron。已经从这个休息了几天,但在再次看了一眼之后,我认为你的榜样可能会让我有所收获。但我有个问题。当我事先知道选项时,您的例子非常棒。但是,我每次构建选择下拉列表,因此每个选项的索引每次都可能会有所不同。我将如何首先检查每个选项的内容,然后知道将哪个选项索引设置为选中状态? (注:这可能是一个愚蠢的问题,有一个非常明显的答案,但我现在太累了,无法知道更好!对不起。) –

+0

其实.....我认为这可能工作。 http://*.com/questions/2513436/reading-option-values-in-select - 再次感谢 –

+0

排序。如果我将选项设置为选择而不是尝试“强制” - .val()的值为特定的数字,则不会出错。 –