JQuery 值没有改变
JQuery Values are not changing
@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);
});
好的,我正在使用上面的代码来顺利地更改 运行 time.Everything 处的 Action-link URL 运行ning。但我有一个奇怪的问题,即当我第一次单击按钮时,它从文本框中获取值并相应地更改,但是当我再次按下按钮时,它不会从文本框中获取新值,而是以某种方式使用我输入的旧值第 1 次!
因为第一次点击后,您将替换 href 中的 sss
和 eee
,因此 href 中没有 sss
或 eee
。所以第一次点击后什么都没有被替换
因此,一个可能的解决方案是将原始 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);
});
基本上,在您的 jQuery 代码中,您通过替换 sss
和 eee
创建了一个新的 link,但是一旦您替换了它们,就可以了找不到他们了
this.href = this.href.replace("sss", StartDate); // sss no longer exists after this
this.href = this.href.replace("eee", EndDate); // sss no longer exists after this
您需要做的是在修改之前存储原始 href 值,然后在您要更新时引用它 link
$("#btnDateWiseGuestSearch").bind('click', function () {
var $this = $(this);
var originalhref = $this.data("href");
if(!originalhref){
this.data("href", this.href);
}
var EndDate = $("#txtDateWiseGuestEndDate").val();
var StartDate = $("#txtDateWiseGuestStartDate").val();
this.href = originalhref.replace("sss", StartDate).replace("eee", EndDate);
});
@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);
});
好的,我正在使用上面的代码来顺利地更改 运行 time.Everything 处的 Action-link URL 运行ning。但我有一个奇怪的问题,即当我第一次单击按钮时,它从文本框中获取值并相应地更改,但是当我再次按下按钮时,它不会从文本框中获取新值,而是以某种方式使用我输入的旧值第 1 次!
因为第一次点击后,您将替换 href 中的 sss
和 eee
,因此 href 中没有 sss
或 eee
。所以第一次点击后什么都没有被替换
因此,一个可能的解决方案是将原始 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);
});
基本上,在您的 jQuery 代码中,您通过替换 sss
和 eee
创建了一个新的 link,但是一旦您替换了它们,就可以了找不到他们了
this.href = this.href.replace("sss", StartDate); // sss no longer exists after this
this.href = this.href.replace("eee", EndDate); // sss no longer exists after this
您需要做的是在修改之前存储原始 href 值,然后在您要更新时引用它 link
$("#btnDateWiseGuestSearch").bind('click', function () {
var $this = $(this);
var originalhref = $this.data("href");
if(!originalhref){
this.data("href", this.href);
}
var EndDate = $("#txtDateWiseGuestEndDate").val();
var StartDate = $("#txtDateWiseGuestStartDate").val();
this.href = originalhref.replace("sss", StartDate).replace("eee", EndDate);
});