【问题标题】:Pass javascript value to controller C#将javascript值传递给控制器​​C#
【发布时间】:2014-03-20 17:25:51
【问题描述】:

我在我的网站上创建了一个搜索功能,允许用户选择他们想要搜索的表格。选择列表位于使用引导程序在下拉菜单中呈现的下拉菜单中。我面临的问题是,当表单运行时,从传递到控制器的下拉菜单中选择的项目的值是“”,而不是在下拉菜单中选择的值。

任何帮助将不胜感激。

**搜索功能**

<div class="col-lg-6">
    @{using (Html.BeginForm("Results", "Searchv2", FormMethod.Get))
    {
        <div class="input-group">
            <div class="input-group-btn">
                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Action <span class="caret"></span></button>
                <ul class="dropdown-menu">
                    @foreach (var searchType in new[] { "User", "Restaurant", "Cuisine" })
                    {
                        <li><a href="">@searchType</a></li>
                    }
                </ul>
                <input type="hidden" name="SearchBy" />
            </div>
            <input type="text" class="form-control" placeholder="Search" name="SearchString" id="SearchString">
        </div>
    }}
</div>

找到值的jquery

<script>
    $(".dropdown-menu").click(function () {
        $("input[name='SearchBy']").val($(this).html());
    });
</script>

【问题讨论】:

  • 尝试将javascript分成两行(第一行var value = $(this).html();),这样您就可以更轻松地检查您实际传递给.val的内容是什么

标签: c# jquery asp.net-mvc forms twitter-bootstrap


【解决方案1】:

您必须在锚标记上编写点击事件,因为您在 &lt;li&gt; 内有锚标记,如下所示:

<ul class="dropdown-menu">
 <li>
  <a>SearchText</a>
 </li>
</ul>


$(".dropdown-menu li a").click(function () {


            $("input[name='SearchBy']").val($(this).html());
        });

【讨论】:

  • 我已将函数更改为 $(this).val() 但它仍然没有将 SearchBy 的 vle 发送到控制器
  • @Dolaps 尝试更新的解决方案,这肯定对你有用
【解决方案2】:

相信你想通过获取选中项的值来设置SearchBy的值:

<script>
    $(".dropdown-menu").click(function () {
        $("input[name='SearchBy']").val($(this).val());
    });
</script>

【讨论】:

    【解决方案3】:

    如果您想获取&lt;a&gt;&lt;/a&gt; 标签之间的文本值,请尝试使用.text() 而不是html()

    【讨论】:

      【解决方案4】:

      首先,您选择的是 ul 而不是其 li 中的 a,其次您应该使用 jquery 文本函数:

      <script>
      $('.dropdown-menu li a').click(function (e) {
          e.preventDefault();
          $('input[name="SearchBy"]').val($(this).text());
      });
      </script>
      

      【讨论】:

        猜你喜欢
        • 2016-02-19
        • 2020-12-18
        • 2019-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多