1
@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 ссылки Action-link во время выполнения. Все работает бесперебойно. но у меня есть странная проблема, т. е. когда я нажимаю кнопку в первый раз, она получает значения из текстовых полей и соответственно изменяется, но когда я снова нажимаю кнопку, она не получает новых значений из текстовых полей, а скорее как-то использует OLD VALUES, которые я вводил 1-й раз!Значения JQuery не меняются

+0

Рассмотрите возможность использования функции '.on ('click')' вместо bind. http://stackoverflow.com/questions/11847021/jquery-bind-vs-on – evolutionxbox

ответ

4

Потому что после того, как ели мыши вы заменяете sss и eee из HREF так там после того, как не sss или eee в 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); 
}); 
+0

Хорошо, я понял! но как я могу хранить «sss», «eee» ?? –

+0

Извините .. что вы подразумеваете под 'store 'sss", "eee" ' –

0

В основном в коде Jquery вы создать новую ссылку, заменив sss и eee однако, как только вы заменили их, что это, вы выиграли» т найти их снова

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 значение, прежде чем изменить его, а затем ссылку, что если вы хотите, чтобы обновить ссылку

$("#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); 
});