2012-11-19 38 views
1

其中,我試圖在「金額」下拉框中提醒所選值,該值是從1到10的數字列表。生成列表並將其插入到一個div。在下拉列表上使用jquery val()

// generate the amount dropdown list 
var dropdown = "<select name=\"amount\">"; 
for(var i=1; i <= MAX_PRINT; i++) { 
    dropdown = dropdown + "<option>" + i + "</option>" 
} 
dropdown = dropdown + "</select>"; 

jQuery("#" + divId).html("<div>Amount: " + dropdown + "</div></div>"); 


var amount = 1; 

jQuery(document).ready(function() { 
    amount = jQuery("#amount").val(); 
    alert(amount); 
}); 

我的問題是:爲什麼會產生「未定義」當我提醒了多少?我期待它返回選定的號碼

+3

它提醒'undefined'因爲ID元素'amount'不存在。 –

回答

5

確保你給你的選擇一個ID - 現在它只是一個名字。因此,您的jQuery('#amount')選擇器不返回任何內容,這就是爲什麼警報顯示爲 undefined

var dropdown = "<select id='amount' name='amount'>"; 
+0

雖然'value'屬性不是必需的。 –

+0

@Felix - 沒有值.val()會默認返回所選選項的文本? –

+0

@AdamRackis值屬性不需要它的工作正常沒有這個也在這裏http://jsfiddle.net/wdtkf/ – rahul

0

有2-3方法從<select>

+0

'.val()'有什麼問題? –

+0

什麼都沒有!但以上只是爲了這種目的而設計的。 '.val'是父母的所有:) – diEcho

3
您使用 amount = jQuery("#amount").val();

的,你必須給你的下拉一個id

var dropdown = "<select name=\"amount\" id=\"amount\">"; 

DEMO

0

id是你的下拉失蹤。

// Generate the amount dropdown list 
var dropdown = "<select id="amount" name=\"amount\">"; 
for(var i=1; i <= MAX_PRINT; i++) { 
    dropdown = dropdown + "<option>" + i + "</option>" 
} 
dropdown = dropdown + "</select>"; 

jQuery("#" + divId).html("<div>Amount: " + dropdown + "</div>/div>"); 

var amount = 1; 

jQuery(document).ready(function() { 
    amount = jQuery("#amount").val(); 
    alert(amount); 
}); 
0

使用這個,如果這對你的作品:

jQuery(document).ready(function() { 
    var amount = jQuery("select[name='amount']").val(); 
    alert(amount); 
});