Pourquoi est-ce que je reçois cette erreur lorsque mon clic sur le bouton appelle cette fonction?

function ShowFaultMessage(message) {

    $.ajax({
        url: '/Home/Message/',
        data: JSON.stringify(message),
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        success: function(result) {
            var w = window.open("/Home/Message", "Fault Message", "width=400, height=400");
            $(w.document.body).html(result.responseText);
        }
    });
};

J'ai regardé les autres questions sur cette erreur, mais aucune ne semble s'appliquer ici. Il semble que tous mes crochets et parenthèses soient présents.

C'est le bouton qui appelle la fonction. Cela semble également correct:

 return new HtmlString(string.Format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage({0})' value='Fault' />", item.Fault.Message));
0
g.t.w.d 13 juil. 2015 à 20:55

2 réponses

Meilleure réponse

J'avais besoin de mettre des guillemets doubles lors de la construction de ma HTMLString pour le bouton dans le paramètre de l'appel de fonction comme ceci:

return new HtmlString(string.Format("<input type='submit' id='btnShowFault' onclick='ShowFaultMessage(\"{0}\")' value='Fault' />", item.Fault.Message));
0
g.t.w.d 13 juil. 2015 à 18:10

Oui, vous avez besoin de guillemets doubles ou simples lors de la transmission d'une valeur de modèle à la fonction javascript, considérez-la comme une valeur de chaîne plutôt qu'une valeur javascript. C'est le même cas lors de son utilisation sur jquery ou de l'ajout de la valeur du modèle.

var test = "alert_container";
foreach (var item in Model.ErrorLists)
       {
           <script>
               jsfunction("@item.prop");

                 or

               $('#@test').append('<div class="alert alert-danger alert-dismissable fade in">' +
                                            '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>' +
                                            '<strong>Error:</strong> @item.ErrorMessage </div>');
           </script>



       }
0
CyberNinja 14 févr. 2017 à 14:40