2009-07-09 9 views
0

fondamentalement ce que je veux est simple, quand onclick, le champ devient éditable. Après avoir modifié la valeur, appuyez sur Echap au clavier/ou cliquez à l'extérieur pour enregistrer l'enregistrement.jquery- jeditable ne fonctionne pas

Je ne sais pas pourquoi cela ne fonctionne pas. La documentation ne semble pas complète ... Quelqu'un a-t-il eu une idée de comment cela fonctionne? La page de documentation: http://www.appelsiini.net/projects/jeditable

Ici, je poste mon code existant ici pour les gars à examiner.

testing.html

<head> 

<title></title> 

<script src="jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script> 
<script src="jquery.jeditable.mini.js" type="text/javascript" charset="utf-8"></script> 

<script type="text/javascript" charset="utf-8"> 

$(function() { 

    $(".click").editable("jeditabletest.php", { 
     indicator : "<img src='indicator.gif'>", 
     tooltip : "Click to edit...", 
     style : "inherit" 
    }); 

}); 

</script> 

<style type="text/css"> 
#sidebar { 
    width: 0px; 
} 

#content { 
    width: 770px; 
} 

.editable input[type=submit] { 
    color: #F00; 
    font-weight: bold; 
} 
.editable input[type=button] { 
    color: #0F0; 
    font-weight: bold; 
} 

</style> 

</head> 



<body>  
     <b class="click" style="display: inline">Click me if you dare!</b></> or maybe you should   

</body> 
</html> 


jeditabletest.php 

<?php 
echo "hehehe" 
?> 

personne ne sait ce qui ne va pas? J'ai essayé tant de fois, ça ne fonctionnait pas du tout. Tous les fichiers de bibliothèque connexes sont déjà mis en

+0

merci gars pour les commentaires :-) Enfin, j'ai trouvé la raison pour laquelle cela ne fonctionne pas. en cliquant sur l'autre endroit après l'édition, besoin de définir \t onblur: «soumettre», sinon, le script ne sera pas effectuer un appel ajax au fichier externe. –

Répondre

1

Pour permettre de soumettre le formulaire lorsque l'utilisateur clique dehors les éléments suivants:

$(".editable").editable("http://www.example.com/save.php", { 
    onblur : "submit" 
}); 

soumettons lorsque vous appuyez sur ESC est généralement une mauvaise idée car ESC est universellement réservée à l'annulation. Si vous voulez vraiment vraiment faire cela, vous devez éditer le code Jeditable. Rechercher et modifier les éléments suivants dans jquery.jeditable.js:

/* discard changes if pressing esc */ 
input.keydown(function(e) { 
    if (e.keyCode == 27) { 
     e.preventDefault(); 
     reset.apply(form, [settings, self]); 
    } 
}); 
+0

J'ai trouvé un problème amusant de jeditable. Exemple- dans Firefox Lorsque je clique pour modifier, le « mot » centre aligné ... Puis je clique ailleurs pour enregistrer les données de db dans textbox en utilisant Firefox, l'avant et l'arrière du mot particulier sera avoir un espace blanc supplémentaire (même après que je coupe la chaîne reçue à la page ajax). Par exemple: Je veux enregistrer "mot", mais les données finales enregistrées dans DB est "mot" Dans IE pas un tel problème. Avez-vous une idée de ce qui se passe dans le processus? –

+0

oups, j'ai déjà trouvé le problème. Dans Firefox, si vous mettez mot il obtiendra l'espace qui ne peut pas être coupé. Dans IE, il va pré-ignorer les espaces de la balise html normale. –

0

j'ai couru votre code et il semblait fonctionner très bien. Je pense que la raison pour laquelle cela ne fonctionne pas pour vous est que cette page .html doit être exécutée à partir d'un serveur Web comme http://localhost/mypage.html. Le plugin jeditable effectue un appel AJAX au serveur chaque fois que vous essayez d'enregistrer le texte modifié et que l'appel AJAX fonctionne, vous devez exécuter la page à partir d'un serveur.

Espérons que cela aide!