javascript - JQuery 值没有改变

标签 javascript jquery asp.net-mvc asp.net-mvc-4 html.actionlink

 @Html.ActionLink("Search", "GetDateWiseGuestReport", "Reports", new { StartDate = "sss",EndDate="eee" }, new { @id = "btnDateWiseGuestSearch",  @class = "btn btn-red" })


$("#btnDateWiseGuestSearch").bind('click', function () {
                //Get the id of the selected item in dropdown

            var EndDate = $("#txtDateWiseGuestEndDate").val();
            var StartDate = $("#txtDateWiseGuestStartDate").val();

              this.href = this.href.replace("sss", StartDate);
              this.href = this.href.replace("eee", EndDate);
 });

好的,我正在使用上面的代码在运行时更改操作链接 URL。一切都运行顺利。但我有一个奇怪的问题,即当我第一次单击按钮时,它从文本框中获取值并相应地更改,但是当我再次按下按钮时,它不会从文本框中获取新值,而是以某种方式使用我输入的旧值第 1 次!

最佳答案

因为在第一次点击后,您将替换 href 中的 ssseee,所以之后没有 ssseee 在 href 中。所以第一次点击后什么都没有被替换

因此,一个可能的解决方案是将原始 href 值存储在其他地方,然后使用它来替换内容。在下面的解决方案中,数据 api 用于存储原始值

var $btn = $("#btnDateWiseGuestSearch");
$btn.data('href', $btn.attr('href'))
$btn.bind('click', function () {
    //Get the id of the selected item in dropdown

    var EndDate = $("#txtDateWiseGuestEndDate").val();
    var StartDate = $("#txtDateWiseGuestStartDate").val();

    var href = $(this).data('href');
    this.href = href.replace("sss", StartDate).replace("eee", EndDate);
});

关于javascript - JQuery 值没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875544/

相关文章:

javascript - 如何为响应式导航栏添加折叠时的平滑过渡?

javascript - 自动保存图片到本地

javascript - 如何在构造函数中包装使用 Proxy 构造的对象?

javascript - 比较字符串与 * 字符 javascript

javascript - Bootstrap 日期选择器图标

jquery - 下拉菜单 jquery 切换项目

c# - 在 ASP.NET MVC 中对 Post 请求执行代码

javascript - 不使用原生 XMLHttpRequest 的原因 - 为什么 $.ajax 是强制性的?

c# - 使用 TempData 从 MVC 操作向 ViewBag 添加字符串值时出现问题

javascript - MVC项目经常JS修改后重新编译,不知道为什么,导致问题