如何仅从下拉列表中提交所选值?

时间:2014-02-14 17:14:57

标签: javascript jquery html css forms

我有以下代码并在表单上调用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

如何仅从下拉列表中提交所选值?

3 个答案:

答案 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>

http://jsfiddle.net/24Hz9/

答案 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());
    }
});

http://jsfiddle.net/ginovva320/C8N7X/

答案 2 :(得分:0)

当没有选择时,IE 9.0+默认使SelectedIndex = -1,而IE 7,8和Chrome使SelectedIndex = 0,因此发布第一项。