我有以下代码并在表单上调用serialize()方法:
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<form>
<select id="CouponType" name="CouponType">
<option value="MONEYOFF">MONEYOFF</option>
<option value="BONUSPOINTS">BONUSPOINTS</option>
</select>
<input type="button" id="btnSubmit" value="SUBMIT ME" />
<script type="text/javascript">
$("#btnSubmit").click(function (e) {
e.preventDefault();
alert($('form').serialize());
});
</script>
</form>
应该发生的是,只有当下拉列表具有值时,才必须对值进行求和,但它始终提交列表中的第一个选项,因此警报的结果始终如下所示,IE 7.0,IE 8.0中, IE 9.0和Chrome:
CouponType=MONEYOFF
如何仅从下拉列表中提交所选值?
答案 0 :(得分:0)
这是你想要的吗?
<form>
<select id="CouponType" name="CouponType">
<option value="MONEYOFF">MONEYOFF</option>
<option value="BONUSPOINTS">BONUSPOINTS</option>
</select>
<input type="button" id="btnSubmit" value="SUBMIT ME" />
<script type="text/javascript">
$("#btnSubmit").click(function (e) {
e.preventDefault();
alert($('#CouponType').val());
});
</script>
</form>
答案 1 :(得分:0)
您必须创建一个默认选择的空白选项,除非用户选择一个
,否则不会提交任何值<form>
<select id="CouponType" name="CouponType">
<option value="">Select a type</option>
<option value="MONEYOFF">MONEYOFF</option>
<option value="BONUSPOINTS">BONUSPOINTS</option>
</select>
<input type="button" id="btnSubmit" value="SUBMIT ME" />
</form>
$("#btnSubmit").click(function (e) {
e.preventDefault();
if ($('#CouponType').val()) {
alert($('form').serialize());
}
});
答案 2 :(得分:0)
当没有选择时,IE 9.0+默认使SelectedIndex = -1,而IE 7,8和Chrome使SelectedIndex = 0,因此发布第一项。