使用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!!
}
确定。看看这个jsfiddle。这应该有助于你理解你的目标是什么......以及如何实现它。 http://jsfiddle.net/aaronfrost/yFuyu/
谢谢Aaron。已经从这个休息了几天,但在再次看了一眼之后,我认为你的榜样可能会让我有所收获。但我有个问题。当我事先知道选项时,您的例子非常棒。但是,我每次构建选择下拉列表,因此每个选项的索引每次都可能会有所不同。我将如何首先检查每个选项的内容,然后知道将哪个选项索引设置为选中状态? (注:这可能是一个愚蠢的问题,有一个非常明显的答案,但我现在太累了,无法知道更好!对不起。) –
其实.....我认为这可能工作。 http://*.com/questions/2513436/reading-option-values-in-select - 再次感谢 –
排序。如果我将选项设置为选择而不是尝试“强制” - .val()的值为特定的数字,则不会出错。 –
你说在选择框中显示的值。这是否意味着您看到“NaN”作为您的选择框的选项?这可能意味着问题出在您的选项生成代码上。 – InvisibleBacon
是的。它应该显示一个数字,它显示空白,我显示该值的跨度显示NaN。虽然好想法。我将检查我正在构建选项的循环。 –
@InvisibleBacon确定这是我选择的构建循环。我在这里弄错了什么,或者只是我回来了,它变成了一个字符串而不是价值的事实? –