2011-05-30 6 views
0

Quand jeQuel est le problème avec ce JQuery?

$(document).ready(function(){ 
    $('form').live('submit', function(){ 
     $('#template').tmpl([{ "id" : "555" }, { "in" : "checked" } ]).prependTo('#content'); 
    }); 
}); 

avec et avec le langage HTML

<!DOCTYPE html> 
<html dir="ltr"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

    <script src="http://code.jquery.com/jquery-1.6.1.min.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.core.js"></script> 
     <script src="http://jqueryui.com/ui/jquery.ui.widget.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.datepicker.js"></script> 
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 

    <script type="text-x-jquery/template" id="template"> 
     <form action="" method="post"> 
     "${id}" <div class="cellData cellRadios"> <input name="ctype" value="individuel" type="radio" "${in}"/> </div> 
     </form> 
    </script> 

    </head> 
    <body> 

    <form action="" method="post"> 
    <input value="Save" type="submit"> 
    </form> 

    <br><br> 

    <div id="content"> </div> 

puis la console d'erreur dans Firefox dit Erreur de syntaxe dans la ligne 1 de jquery.tmpl.min.js qui est de JQuery.tmpl()

jsFiddle à

http://jsfiddle.net/Cu5Mj/4/

Est-il

$('#template').tmpl([{ "id" : "555" }, { "in" : "checked" } ]).prependTo('#content'); 

qui ne va pas?

Mise à jour Mise à jour de JSFiddle et de la publication du code qui échoue.

+0

@Sandra: Votre violon fonctionne très bien, je vois "555" apparaître avant que le formulaire est affiché ... –

+0

Cela fonctionne pour moi – wong2

+0

Vous avez raison. Qu'est-ce qui se passe ici! J'ai dû trop simplifier le problème. http://jsfiddle.net/Cu5Mj/3/ –

Répondre

2

J'ai changé les points suivants dans votre code HTML:

<script type="text/x-jquery-tmpl" id="template"> 
    <form action="" method="post"> 
     "${Id}" <div class="cellData cellRadios"> <input name="ctype" value="individuel" type="radio" ${In} /> </div> 
    </form> 
</script> 

et votre JavaScript:

$(document).ready(function(){ 
    $('form').live('submit', function(){ 
     $('#template').tmpl({ "Id" : "555","In" : "checked" }).prependTo('#content'); 
     return false; 
    }); 
}); 

et cela fonctionne pour moi. Les problèmes que je pense étaient les noms des variables de gabarit, je les ai mis en majuscule et les données de gabarit étaient un tableau de 2 objets au lieu d'un simple objet. (A également changé le modèle de script MIME un peu.)

+1

le problème était surtout ** en **, c'est un mot réservé en javascript: https://developer.mozilla.org/fr/JavaScript/Reference/Reserved_Words –