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

pass the dropdown value into controller with Ajax

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

这是我的 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)

我怎样才能传递值?仅此而已

您的代码只有几处错误。请参阅下面的工作示例。

$(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>

您需要 select select 使用您的 select 中需要 # 的 ID,而 val()jQuery 方法获取 select 的值,如下所示。

修复

$('#discount').val()

进一步阅读

jQuery .val()

jQuery ID selector

$("#discount").val()

return所选选项的值

$("#discount").text()

return所选选项的文本

我觉得你想要

来自 jQuery Ajax 添加以下行

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

您可以打印所选 drop-down 列表中的这些值,方法是添加 Ajax 以上的这些下面的行,即来自 JavaScript

var discount = $('#discount option:selected').val();
console.log(discount);
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;
        }