Skip to main content

$("#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??


Comments

  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

Post a Comment

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.