选择元素已选择值-1

时间:2013-10-02 07:16:56

标签: javascript jquery asp.net-mvc

选择元素已选择值4(例如),我将表单数据发送到服务器。控制器返回局部视图。

 <script>
        $(document).ready(function () {
            var objSel = document.getElementById("IDVacationApplicationType");
            checkVacationType(objSel);
            $("select#IDVacationApplicationType").change(function () {
                checkVacationType(this);
            });

        });
        function checkVacationType(elem) {
            var item = $(elem).val();
            alert(item);
        }
 </script>

HTML:

<div class="form-position">
     <div class="form-label">
          @Html.LabelFor(model => model.VacationApplicationTypes)
     </div>
     <div class="form-value">
          @Html.DropDownListFor(model => model.IDVacationApplicationType, Model.VacationApplicationTypes)
          @Html.ValidationMessageFor(model => model.VacationApplicationTypes)
     </div>
</div>

警告显示-1。 在该表单中选择了具有所选值的元素= 4.如何获得此4?

enter image description here

答:我在页面中有两个相同的ID。

2 个答案:

答案 0 :(得分:1)

您可以使用此

 $('#IDVacationApplicationType').find(":selected").val();

所以将您的功能更改为checkVacationType

function checkVacationType(elem) {
    var item = $(elem).find(":selected").val();
    alert(item);
}

Fiddle Demo

答案 1 :(得分:0)

我在页面中有两个相同的ID。 我需要在元素中添加类:

 @Html.DropDownListFor(model => model.IDVacationApplicationType, Model.VacationApplicationTypes, new { @class = "IDVacationApplicationType" })

<script>
    $(document).ready(function () {
        var objSel = $(".IDVacationApplicationType");

        checkVacationType(objSel);
        $(".IDVacationApplicationType").change(function () {
            checkVacationType(this);
        });

    });
    function checkVacationType(elem) {
        var item = $(elem).val();
        alert(item);
    }
</script>