javascript - 使用 jQuery 将无序列表所选项目传递到 ASP.NET Web 窗体

标签 javascript c# jquery html asp.net

我之前问过一个问题,但措辞不正确。

我几乎是第一次使用 jQuery 和 Bootstrap,需要一些帮助。

我有一个 .aspx 网页,其中包含以下代码:

<form method="POST" action="Search.aspx">
    <div>
        <input type="text" class="form-control" name="srchterm" id="srchterm" style="width: 300px" />
        <button id="Submit" class="btn btn-primary" type="submit">
            GO!</button>
    </div>
    <br />
    <div>
        <div class="btn-group">
            <a id="reportType" class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="#"
                 name="rptType">Select report type<span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li id="1"><a href="#">All</a></li>
                <li id="2"><a href="#">Some</a></li>
                <li id="3"><a href="#">None</a></li>
            </ul>
        </div>
        <div class="btn-group">
            <a id="reportStatus" class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="#">
                Report Status<span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li id="1"><a href="#">Active</a></li>
                <li id="2"><a href="#">Archived</a></li>
                <li id="3"><a href="#">All</a></li>
            </ul>
        </div>

        </div>
    </div>

    </form>

我想知道的是如何使用 JQuery 或 AJAX 将所选无序列表项的值传递给后面的代码。我对这两种方法都了解不多(或者说完全诚实)。

当我点击提交按钮时,它会获取文本框值并将其传递回 Request.Form("srchTerm") 但我似乎无法传递任何其他内容。

我在这里看到了这个链接:fiddle但似乎无法让它为我工作。

我想知道这是否是因为我如何声明我的列表框,但确实需要帮助才能使其正常工作。

如果我缺少标签,请告诉我。但我非常感谢 JavaScript 的帮助,将其连接起来以传递数据,以便我可以从数据库中调用信息。

======================================

编辑1

我尝试了各种方法,但我没有保留任何方法,但这是我现在所拥有的,并且无法获得任何东西来传递值。

$(".dropdown-menu li a").click(function () {
    var selText = $(this).text();
    $(this).parents('.btn-group').find('.dropdown-toggle').html(selText + '     <span class="caret"></span>');
});

$('.reportType li').click(function () {
    value1 = $(this).attr('value');
});

$('.reportStatus li').click(function () {
    value2 = $(this).attr('value');
});

$('#Submit').click(function () {
    alert('value1 = ' + value1 + ' | value2 = ' + value2);
});

最佳答案

如果您必须有下拉列表并且想要维护这种类型的功能,那么我只需使用隐藏的输入字段,如下所示:

 <div class="btn-group">
   <input type="hidden" id="reportStatus" name="reportStatus" />
   <a class="btn btn-default dropdown-toggle btn-select" 
      data-toggle="dropdown" href="#">
        Report Status
        <span class="caret"></span>
   </a>
   <ul class="dropdown-menu">
     <li data-val="1"><a href="#">Active</a></li>
     <li data-val="2"><a href="#">Archived</a></li>
     <li data-val="3"><a href="#">All</a></li>
   </ul>
 </div>

JS 会是这样的:

//$(function () {
//   $("#reportStatus").parents("div").find("li").click(function () {
//        value = $(this).attr("data-val");
//        $("#reportStatus").val(value);
//    })
//});

//or something more general:

$(function () {

    $(".btn-group").each(function (index, item) {
        myInput = $(item).children("input");

        $(item).find("li").click(function () {
            value = $(this).attr("data-val");
            myInput.val(value);

        });
    });
});

fiddle here

关于javascript - 使用 jQuery 将无序列表所选项目传递到 ASP.NET Web 窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444001/

相关文章:

c# - 有没有一种方法可以在不使用构造函数的情况下初始化结构的成员?

c# - 将现有的 Microsoft.AspNet.Identity DB (EF 6) 迁移到 Microsoft.AspNetCore.Identity (EF Core)

javascript - 如何重用 jqGrid 选项

javascript - 为什么此代码在使用表单标签时会导致错误?

javascript - 如何覆盖项目中的 Meteor 核心包?

javascript - 如何在 React 中显示页面之前加载所有图像?

javascript - 计算区域中的行数和列数

c# - 在c#中将不同的列表绑定(bind)到datagridview中的列

javascript - 使用 jQuery 动态呈现选择框的问题

javascript - 如何使工具提示在超宽元素上围绕光标 float