2017-07-26 72 views
0

我试图让一个弹出对话框出现在图片上传器上(这是第一个div body),但我不断收到这个错误在jquery.min.js:

jQuery.Deferred异常:$(...)。对话框不是一个函数TypeError:$(...)。对话框不是功能

以及此错误:

遗漏的类型错误:$(...)对话框是不是一个函数

的对M还没有弹出作为一个单独的对话框,而只是出现在屏幕的底部,如链接如下图所示:

https://wardrobed-debjanidas.c9users.io/imageupload

下面是我的HTML代码:

<!DOCTYPE html> 
    <html> 
     <head> 
       <!---bootstrap stuff---> 
       <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

      <!---my stylesheet---> 
      <link rel="stylesheet" href="css/styles.css" /> 

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
      <script 
       src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" 
       integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" 
       crossorigin="anonymous"> 

      </script> 


      <title>Wardrobed</title> 


      <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 { paddsing: .3em; } 
      .validateTips { border: 1px solid transparent; padding: 0.3em; } 
      </style> 
      <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.!#$%&'*+\/=?^_`{|}~-][email protected][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> 
     </head> 
     <body> 

      <div class="container"> 
      <div class="row"> 
       <div class="col-xs-12"> 
       <div class="panel panel-default"> 
        <div class="panel-body"> 
        <span class="glyphicon glyphicon-cloud-upload"></span> 
        <h2>Item Uploader</h2> 
        <h4>Wardrobed</h4> 
        <div class="progress"> 
         <div class="progress-bar" role="progressbar"></div> 
        </div> 
        <button class="btn btn-lg upload-btn" type="button">Upload Image</button> 
        </div> 
       </div> 
       </div> 
      </div> 
      </div> 

      <input id="upload-input" type="file" name="uploads[]" multiple="multiple"></br> 
      <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> 

      <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script> 
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
      <script src="javascripts/upload.js"></script> 
     </body> 
    </html> 

我试图将我的bootstrap cdn更新为4.0.0,但导致图像上传器div消失,并且表单停留在页面底部。有谁知道我应该如何解决这个问题?

+0

您包含jQuery的多个版本。你只需要使用一个 –

回答

0

首先加载“jquery-2.2.0.min.js”,然后加载“jquery-ui.min.js”以消除错误。

相关问题