2011-09-02 212 views
0

嘗試在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確定這是我選擇的構建循環。我在這裏弄錯了什麼,或者只是我回來了,它變成了一個字符串而不是價值的事實? –

回答

1

確定。看看這個jsfiddle。這應該有助於你理解你的目標是什麼......以及如何實現它。 http://jsfiddle.net/aaronfrost/yFuyu/

+0

謝謝Aaron。已經從這個休息了幾天,但在再次看了一眼之後,我認爲你的榜樣可能會讓我有所收穫。但我有個問題。當我事先知道選項時,您的例子非常棒。但是,我每次構建選擇下拉列表,因此每個選項的索引每次都可能會有所不同。我將如何首先檢查每個選項的內容,然後知道將哪個選項索引設置爲選中狀態? (注:這可能是一個愚蠢的問題,有一個非常明顯的答案,但我現在太累了,無法知道更好!對不起。) –

+0

其實.....我認爲這可能工作。 http://stackoverflow.com/questions/2513436/reading-option-values-in-select - 再次感謝 –

+0

排序。如果我將選項設置爲選擇而不是嘗試「強制」 - .val()的值爲特定的數字,則不會出錯。 –

相關問題