Friday, February 17, 2012

$("#form”).attr("method”, "post”) is In java Script ASP.NET


I have a Grid view where I have a hyper link button which displays ID, by clicking on it I make a Ajax call to the server and get the specific URL to navigate against of the ID. After the Ajax call complete I call the following Codes to open the respective page in New Tab/Window.




function RedirectPageUrl(rqstID) {
$("#formMain").attr("action", rqstID);
$("#formMain").attr("method", "post");
$("#formMain").attr('target', '_blank');
$("#formMain").submit();
return false;
}



Here my problem is after clicking on the First hyperlink button things are working perfectly but then onwards whenever I click on any control (say Button)the previous opened form opens up. How to get rid of it any idea??

1 comment:

  1. Because you have modified the action and other attributes of the main form on your page which I guess is the same #formMain'. So next time whenever you try to click on any button which postbacks to the server it submits the form to the action set by previousRedirectPageUrl` method call.

    You can try something like this which is basically using a different form for redirecting to another page. This way the main form remains unchanged and other functionalities on the page are not affected.

    function RedirectPageUrl(rqstID) {
    var $redirectForm = $('#redirectForm');
    if($redirectForm.length == 0){
    $redirectForm = $('<form id="redirectForm" method="post" target="_blank" />')
    .appendTo(document.body);
    }
    $redirectForm
    .attr("action", rqstID)
    .submit();
    return false;
    }

    ReplyDelete