2010-08-27 7 views
0

je tente de poster des données via des objets JSON à mon asp.net vue mvc, voici le codeJQuery problème après la fonction

$("#submitButton").click(function() { 
       var name = $("#name")[0].valueOf(); 
       var price = $("#price").valueOf(); 
       var url = $("#url").valueOf(); 

       var product = { Name: name, Price: price, Url: url }; 
        $.post("/Home/NewProduct", product, function (json) { $('ul.items').append("<li><img src=" + url + "/></li>"); },"json"); 

      }); 

et maintenant, le résultat est une erreur:

exception uncaught : [Exception ... "opération illégale sur l'objet prototype WrappedNative" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" emplacement "cadre JS :: :: f :: http://localhost:1804/Scripts/jquery-1.4.2.min.js ligne 132" data: no]

je tente JQuery 1.4 .1 et 1.4.2, Si j'essaie ce code, l'erreur est la même

$.ajax({ 
    type: "POST", 
    url: "/Home/NewProduct", 
    dataType: "json", 
    data: { Name: name, Price: price, Url: url }, 
    success: function() { $('ul.items').append("<li><img src=" + url + "/></li>"); } 
       }); 

Qu'est-ce que je fais mal? S'il vous plaît aider! Merci!

+0

ressemble à la complétion de code studios visuels est le coupable coupable ici! Je déteste quand il tourne mon .val à .valueOf! – Patricia

Répondre

3

Pour obtenir la valeur d'un élément de type d'entrée, utilisez .val() au lieu de .valueOf(), comme ceci:

var name = $("#name").val(), 
    price = $("#price").val(), 
    url = $("#url").val(); 

Lorsque vous appelez .valueOf() sur un objet jQuery, il obtient un ensemble d'éléments DOM ... et cela ne sérialise pas bien :)

+0

cela fonctionne, merci beaucoup – Maki

0

Dans votre appel $ .post si vous transmettez JSON en tant que 4ème paramètre, jQuery attendra VALID json string seulement, sinon cela pourrait provoquer une erreur.

exemple de JSON est valable

var json = {"a":"my name", "b":"my school"}; 
Questions connexes