2010-06-11 4 views
1

J'essaie d'afficher une forme modale en utilisant jquery ui. J'ai adapté un exemple, mais je n'arrive pas à lancer la boîte de dialogue. Je suis sûr que c'est très simple mais quelqu'un peut-il me dire ce que je fais mal?Aide pour 'hello world' modulaire jquery-ui?

La page s'affiche initialement mais lorsque je clique sur 'Créer un nouvel utilisateur' rien ne se passe.

Le code est ci-dessous - également (plus facile à lire) à http://pastie.org/1000263.

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>jQuery UI Example Page</title> 
    <link type="text/css" href="jquery-ui-1.7.3.custom/css/smoothness/jquery-ui-1.7.3.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="jquery-ui-1.7.3.custom/js/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript" src="jquery-ui-1.7.3.custom/js/jquery-ui-1.7.3.custom.min.js"></script> 
    <script type="text/javascript"> 
    $(function(){ 
    $("#dialog-form").dialog({ 
    autoOpen: false, 
    height: 300, 
    width: 350, 
    modal: true, 
    buttons: { 
    'Create an account': function() { 
     var bValid = true; 
     allFields.removeClass('ui-state-error'); 

     if (bValid) { 
     alert(name.val()); 
     $(this).dialog('close'); 
     } 
    }, 
    Cancel: function() { 
     $(this).dialog('close'); 
    } 
    }, 
    close: function() { 
    allFields.val('').removeClass('ui-state-error'); 
    } 
    }); 

    $('#create-user') 
    .button() 
    .click(function() { 
    $('#dialog-form').dialog('open'); 
    }); 


    }); 
    </script> 

    <style type="text/css"> 
    /*demo page css*/ 
    body{ font: 62.5% "Trebuchet MS", sans-serif; margin: 50px;} 
    .demoHeaders { margin-top: 2em; } 
    #dialog_link {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;} 
    #dialog_link span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: -8px;} 
    ul#icons {margin: 0; padding: 0;} 
    ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;} 
    ul#icons span.ui-icon {float: left; margin: 0 4px;} 
    </style> 
</head> 
<body> 
<h1>Welcome to jQuery UI!</h1> 

<p style="font-weight: bold; margin: 2em 0 1em; font-size: 1.3em;">YOUR COMPONENTS:</p> 
    <div id="dialog-form" title="Create new user"> 
    <p class="validateTips">All form fields are required.</p> 

    <form> 
    <fieldset> 
    <label for="name">Name</label> 
    <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" /> 
    <label for="email">Email</label> 
    <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" /> 
    <label for="password">Password</label> 
    <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" /> 
    </fieldset> 
    </form> 
    </div> 
    <button id="create-user">Create new user</button> 
</body> 
</html> 
+0

Êtes-vous sûr que les fichiers que vous liez sont inclus correctement? Aussi, si vous êtes débutant, vous pouvez aussi bien utiliser les dernières versions :) –

Répondre

3

Votre code a bien fonctionné quand j'ai enlevé .button()

$('#create-user') 
    .click(function() { 
    $('#dialog-form').dialog('open'); 
    }); 

Je ne suis pas vraiment sûr de ce que .button() ne de toute façon. Je ne suis pas sûr d'avoir déjà vu ça.

La console javascript en chrome dit: "Uncaught TypeError: # Object n'a pas de méthode 'bouton'"

La console javascript sera très utile pour "pourquoi les choses ne fonctionnent pas".

+0

En IE, vous pouvez appuyer sur F12 pour le débogage javascript/css, et firebug (http://getfirebug.com/) est idéal pour firefox. –

+0

+1 - bon point, '.button()' est jQuery UI 1.8+, il utilise l'interface utilisateur 1.7. –

+0

Merci d'avoir signalé cela. J'essayais d'intégrer avec un code existant qui utilise déjà jq 1.3.2 (que jqui 1.8 ne supporte pas) mais maintenant vous avez signalé le problème avec .button() je vais devoir adopter une approche différente. Merci encore. – glaucon