使用Ajax将下拉值传递给控制器

时间:2015-01-31 19:59:51

标签: jquery ajax asp.net-mvc

我在谷歌搜索了很多次,但我找不到答案。 我有一个Select html标签,它有3个选项标签。我想用Jquery Ajax传递这些选择值,但我不能。

这是我的Html标签

     <select id="discount" onchange="discountPostback()" title="">
        <option value=""></option>
        <option value="0">نمایش کل </option>
        <option value="1">نمایش افراد با تخفیف</option>
        <option value="2">نمایش افراد بدون تخفیف</option>


    </select>

javascript

   function discountPostback() {
            debugger;


                $.ajax({
                    url: '@Url.Action("Index","Report")',
                    type: 'POST',
                    data: { type: $('discount').val },
                    success: function () {

                    },
                    error: function () {
                        alert("error");
                    }
                });
                return false;
        }

MVC控制器

public ActionResult Index(short? type)

我怎样才能传递价值?没有更多

4 个答案:

答案 0 :(得分:2)

您的代码只有几个问题。请参阅下面的工作示例。

$(document).ready(function() {
  $('#discount').on('change', function() {
    alert($('#discount').val());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<select id="discount" onchange="discountPostback()" title="">
  <option value=""></option>
  <option value="0">نمایش کل</option>
  <option value="1">نمایش افراد با تخفیف</option>
  <option value="2">نمایش افراد بدون تخفیف</option>
</select>

您需要使用需要选择器中#的ID选择选择,而val()jQuery方法来获取选择的值,而不是其他任何内容,如下所示。

<强>修正

$('#discount').val()

进一步阅读

jQuery .val()

jQuery ID selector

答案 1 :(得分:1)

$("#discount").val()

返回所选选项的值

$("#discount").text()

返回所选选项的文字

我认为你想要

答案 2 :(得分:1)

从jQuery Ajax添加以下行

$('#discount option:selected').val();

您可以通过添加从所选下拉列表中打印这些值 以下是Ajax以上的行,即来自JavaScript

var discount = $('#discount option:selected').val();
console.log(discount);

答案 3 :(得分:1)

Try This

 function discountPostback() {
            debugger;


                $.ajax({
                    url: '@Url.Action("Index","Report")',
                    type: 'POST',
                    data: '{ type: $('#discount').val() }',
                    success: function () {

                    },
                    error: function () {
                        alert("error");
                    }
                });
                return false;
        }