2012-11-19 35 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); 
});