2017-11-20 4 views
0

Ich lerne modals. Also habe ich diesen Code aus der Jquery-Dokumentation verwendet, aber dieser Code gibt mir nicht die erwartete Ausgabe. Ich konnte nicht herausfinden, was mit diesem Code nicht stimmt. Ich mag diese Art der Ausgabe erhalten: Here is an axample Aber ich diesen Ausgang But I am getting this output Hier bin immer ist der Code:Modal gibt keine erwartete Ausgabe

<!doctype html> 
    <html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>jQuery UI Dialog - Modal form</title> 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> 
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"> </script> 

</head> 
<body> 

<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" value="Jane Smith" class="text ui-widget-content ui-corner-all"> 
      <label for="email">Email</label> 
      <input type="text" name="email" id="email" value="[email protected]" class="text ui-widget-content ui-corner-all"> 
      <label for="password">Password</label> 
      <input type="password" name="password" id="password" value="xxxxxxx" class="text ui-widget-content ui-corner-all"> 

      <!-- Allow form submission with keyboard without duplicating the dialog button --> 
      <input type="submit" tabindex="-1" style="position:absolute; top:-1000px"> 
     </fieldset> 
    </form> 
</div> 


<div id="users-contain" class="ui-widget"> 
    <h1>Existing Users:</h1> 
    <table id="users" class="ui-widget ui-widget-content"> 
     <thead> 
      <tr class="ui-widget-header "> 
       <th>Name</th> 
       <th>Email</th> 
       <th>Password</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td>John Doe</td> 
       <td>[email protected]</td> 
       <td>johndoe1</td> 
      </tr> 
     </tbody> 
    </table> 
</div> 
<button id="create-user">Create new user</button> 


</body> 
</html> 

hier ist der Javascript-Teil:

<script> 
    $(function() { 
     var dialog, form, 

    // From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29 
    emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, 
    name = $("#name"), 
    email = $("#email"), 
    password = $("#password"), 
    allFields = $([]).add(name).add(email).add(password), 
    tips = $(".validateTips"); 

    function updateTips(t) { 
    tips 
    .text(t) 
    .addClass("ui-state-highlight"); 
    setTimeout(function() { 
    tips.removeClass("ui-state-highlight", 1500); 
    }, 500); 
    } 

    function checkLength(o, n, min, max) { 
    if (o.val().length > max || o.val().length < min) { 
    o.addClass("ui-state-error"); 
    updateTips("Length of " + n + " must be between " + 
     min + " and " + max + "."); 
    return false; 
    } else { 
    return true; 
    } 
    } 

    function checkRegexp(o, regexp, n) { 
    if (!(regexp.test(o.val()))) { 
    o.addClass("ui-state-error"); 
    updateTips(n); 
    return false; 
    } else { 
    return true; 
    } 
    } 

    function addUser() { 
    var valid = true; 
    allFields.removeClass("ui-state-error"); 

    valid = valid && checkLength(name, "username", 3, 16); 
    valid = valid && checkLength(email, "email", 6, 80); 
    valid = valid && checkLength(password, "password", 5, 16); 

    valid = valid && checkRegexp(name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter."); 
    valid = valid && checkRegexp(email, emailRegex, "eg. [email protected]"); 
    valid = valid && checkRegexp(password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9"); 

    if (valid) { 
    $("#users tbody").append("<tr>" + 
     "<td>" + name.val() + "</td>" + 
     "<td>" + email.val() + "</td>" + 
     "<td>" + password.val() + "</td>" + 
    "</tr>"); 
    dialog.dialog("close"); 
    } 
    return valid; 
} 

dialog = $("#dialog-form").dialog({ 
    autoOpen: false, 
    height: 400, 
    width: 350, 
    modal: true, 
    buttons: { 
    "Create an account": addUser, 
    Cancel: function() { 
     dialog.dialog("close"); 
    } 
    }, 
    close: function() { 
    form[ 0 ].reset(); 
    allFields.removeClass("ui-state-error"); 
    } 
}); 

form = dialog.find("form").on("submit", function(event) { 
    event.preventDefault(); 
    addUser(); 
}); 

$("#create-user").button().on("click", function() { 
    dialog.dialog("open"); 
     }); 
    }); 
</script> 

Hier ist das Stylesheet :

<style> 
    label, input { 
     display: block; 
    } 

     input.text { 
      margin-bottom: 12px; 
      width: 95%; 
      padding: .4em; 
     } 

    fieldset { 
     padding: 0; 
     border: 0; 
     margin-top: 25px; 
    } 

    h1 { 
     font-size: 1.2em; 
     margin: .6em 0; 
    } 

    div#users-contain { 
     width: 350px; 
     margin: 20px 0; 
    } 

     div#users-contain table { 
      margin: 1em 0; 
      border-collapse: collapse; 
      width: 100%; 
     } 

      div#users-contain table td, div#users-contain table th { 
       border: 1px solid #eee; 
       padding: .6em 10px; 
       text-align: left; 
      } 

    .ui-dialog .ui-state-error { 
     padding: .3em; 
    } 

    .validateTips { 
     border: 1px solid transparent; 
     padding: 0.3em; 
    } 
    </style> 

bitte helfen Sie mir, wie Sie dieses Problem lösen Bitte ignorieren Sie meine Fehler.

+0

@SankarRaj Ich habe die erwartete Ausgabe Foto –

+0

Haben Sie Fehler bekam hinzugefügt? – Sankar

+0

@SankarRaj Ich bekomme keine Fehler. Aber dieser Code gibt keine erwartete Ausgabe. Ich möchte das Modal zeigen, während ich auf die Schaltfläche klicke, aber dies zeigt nicht das Modal zeigt nur den Klartext –

Antwort

1

Es funktioniert wie erwartet.

$(function() { 
 
    var dialog, form, 
 

 
    // From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29 
 
    emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, 
 
    name = $("#name"), 
 
    email = $("#email"), 
 
    password = $("#password"), 
 
    allFields = $([]).add(name).add(email).add(password), 
 
    tips = $(".validateTips"); 
 

 
    function updateTips(t) { 
 
    tips 
 
     .text(t) 
 
     .addClass("ui-state-highlight"); 
 
    setTimeout(function() { 
 
     tips.removeClass("ui-state-highlight", 1500); 
 
    }, 500); 
 
    } 
 

 
    function checkLength(o, n, min, max) { 
 
    if (o.val().length > max || o.val().length < min) { 
 
     o.addClass("ui-state-error"); 
 
     updateTips("Length of " + n + " must be between " + 
 
     min + " and " + max + "."); 
 
     return false; 
 
    } else { 
 
     return true; 
 
    } 
 
    } 
 

 
    function checkRegexp(o, regexp, n) { 
 
    if (!(regexp.test(o.val()))) { 
 
     o.addClass("ui-state-error"); 
 
     updateTips(n); 
 
     return false; 
 
    } else { 
 
     return true; 
 
    } 
 
    } 
 

 
    function addUser() { 
 
    var valid = true; 
 
    allFields.removeClass("ui-state-error"); 
 

 
    valid = valid && checkLength(name, "username", 3, 16); 
 
    valid = valid && checkLength(email, "email", 6, 80); 
 
    valid = valid && checkLength(password, "password", 5, 16); 
 

 
    valid = valid && checkRegexp(name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter."); 
 
    valid = valid && checkRegexp(email, emailRegex, "eg. [email protected]"); 
 
    valid = valid && checkRegexp(password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9"); 
 

 
    if (valid) { 
 
     $("#users tbody").append("<tr>" + 
 
     "<td>" + name.val() + "</td>" + 
 
     "<td>" + email.val() + "</td>" + 
 
     "<td>" + password.val() + "</td>" + 
 
     "</tr>"); 
 
     dialog.dialog("close"); 
 
    } 
 
    return valid; 
 
    } 
 

 
    dialog = $("#dialog-form").dialog({ 
 
    autoOpen: false, 
 
    height: 400, 
 
    width: 350, 
 
    modal: true, 
 
    buttons: { 
 
     "Create an account": addUser, 
 
     Cancel: function() { 
 
     dialog.dialog("close"); 
 
     } 
 
    }, 
 
    close: function() { 
 
     form[0].reset(); 
 
     allFields.removeClass("ui-state-error"); 
 
    } 
 
    }); 
 

 
    form = dialog.find("form").on("submit", function(event) { 
 
    event.preventDefault(); 
 
    addUser(); 
 
    }); 
 

 
    $("#create-user").button().on("click", function() { 
 
    dialog.dialog("open"); 
 
    }); 
 
});
label, 
 
input { 
 
    display: block; 
 
} 
 

 
input.text { 
 
    margin-bottom: 12px; 
 
    width: 95%; 
 
    padding: .4em; 
 
} 
 

 
fieldset { 
 
    padding: 0; 
 
    border: 0; 
 
    margin-top: 25px; 
 
} 
 

 
h1 { 
 
    font-size: 1.2em; 
 
    margin: .6em 0; 
 
} 
 

 
div#users-contain { 
 
    width: 350px; 
 
    margin: 20px 0; 
 
} 
 

 
div#users-contain table { 
 
    margin: 1em 0; 
 
    border-collapse: collapse; 
 
    width: 100%; 
 
} 
 

 
div#users-contain table td, 
 
div#users-contain table th { 
 
    border: 1px solid #eee; 
 
    padding: .6em 10px; 
 
    text-align: left; 
 
} 
 

 
.ui-dialog .ui-state-error { 
 
    padding: .3em; 
 
} 
 

 
.validateTips { 
 
    border: 1px solid transparent; 
 
    padding: 0.3em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<!doctype html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title>jQuery UI Dialog - Modal form</title> 
 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> 
 
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"> 
 
    </script> 
 

 
</head> 
 

 
<body> 
 

 
    <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" value="Jane Smith" class="text ui-widget-content ui-corner-all"> 
 
     <label for="email">Email</label> 
 
     <input type="text" name="email" id="email" value="[email protected]" class="text ui-widget-content ui-corner-all"> 
 
     <label for="password">Password</label> 
 
     <input type="password" name="password" id="password" value="xxxxxxx" class="text ui-widget-content ui-corner-all"> 
 

 
     <!-- Allow form submission with keyboard without duplicating the dialog button --> 
 
     <input type="submit" tabindex="-1" style="position:absolute; top:-1000px"> 
 
     </fieldset> 
 
    </form> 
 
    </div> 
 

 

 
    <div id="users-contain" class="ui-widget"> 
 
    <h1>Existing Users:</h1> 
 
    <table id="users" class="ui-widget ui-widget-content"> 
 
     <thead> 
 
     <tr class="ui-widget-header "> 
 
      <th>Name</th> 
 
      <th>Email</th> 
 
      <th>Password</th> 
 
     </tr> 
 
     </thead> 
 
     <tbody> 
 
     <tr> 
 
      <td>John Doe</td> 
 
      <td>[email protected]</td> 
 
      <td>johndoe1</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 
    </div> 
 
    <button id="create-user">Create new user</button> 
 

 

 
</body> 
 

 
</html>

+0

Dieser Code arbeitet an Code-Snippet, aber wenn ich diesen Code kopieren und in sublime Texteditor einfügen die Ausgabe auf die vorherige geändert ein. –

+0

Es sollte funktionieren. Überprüfen Sie die Entwicklerkonsole auf Fehler. – Sankar

Verwandte Themen