2016-05-17 3 views
0

ich das unten stehende Skript in meinem Code haben:Programmatische Form POST von jQuery funktioniert nicht in dem Dokument bereit

<script src="~/Scripts/jquery-2.2.3.js"></script> 
    <script type="text/javascript"> 
     $(document).ready() 
     { 
      $("#hdnTest").text('@ViewBag.Test');     
      $("#frmRouter").submit(); 
     }; 

     function submitform() 
     { 
      $("#frmRouter").submit(); 
     } 
    </script> 

ich auch die unten html in meiner Mvc Blick haben:

<form id="frmRouter" method="post" action="https://localhost/Destination/Index"> 
     <div> 
      <input type="hidden" id="hdnTest" name="hdnTestName" /> 
     </div> 
     <a href="#null" onclick="submitform();">Click</a> 
    </form> 

Wenn ich auf Auf dem Hyperlink wird das Formular an die Aktions-URL gesendet. Die Formularübergabe innerhalb von document.ready funktioniert jedoch nicht. Wieso ist es so?

Antwort

1

Ihr document.ready hat nicht die korrekte Syntax. Sie haben zwei Möglichkeiten, eine document.ready-Funktion auszuführen.

$(document).ready(function() { 
    $("#hdnTest").text('@ViewBag.Test'); 
    $("#frmRouter").submit(); 
}); 

$(function() { 
    $("#hdnTest").text('@ViewBag.Test'); 
    $("#frmRouter").submit(); 
}); 
3

Sie haben den Code in einer Weise geschrieben, die syntaktisch korrekt ist, aber funktionell falsch:

$(document).ready(function() { 
     $("#hdnTest").text('@ViewBag.Test');     
     $("#frmRouter").submit(); 
    }); 

ist das, was Sie wollen. Der .ready() Methode sollte ein Verweis auf eine Funktion übergeben werden. Es muss keine anonyme Funktion sein (wie oben), aber das ist ziemlich üblich.

Ihr Code fehlte die Funktion, so ignoriert jQuery den Methodenaufruf grundsätzlich. Der nachfolgende Codeblock wurde ausgeführt, aber da das Formularelement im DOM nicht vorhanden war, hat es nichts bewirkt.

0
$(document).ready(function(){ 
    $("#id_of_your_anchor_tag").click(function(){ 
     $("#hdnTest").text('@ViewBag.Test');     
     $("#frmRouter").submit(); 
    }); 
    }); 



<a href="#" id="id_of_your_anchor_tag">Click</a> 

auf diese Weise versuchen, Hoffe, es hilft!

Verwandte Themen