2017-10-05 76 views
1

我是新來的Javascript和任何幫助,將不勝感激。呼叫Javascript驗證功能從提交按鈕

我收到一個錯誤說不是formValidation不是一個函數並在控制檯中我看到以下內容: 的ReferenceError:要求沒有定義 在投資組合/ JS /的script.js:12:23

以下是封裝結構:

Portfolio 
    js 
    script.js 
    formValidation.js 
index.html 

我已經加入的script.js到我的html頁面

<script src="js/script.js"></script> 

表Validation.js(其導出)

var FormValidation = function() { 

    var name = document.forms["contact"]["name"].value; 

    function nameValidation(name) { 

     if(name=="") { 
      alert("Enter name, required"); 
      return false; 
     }else if(name==[0-9]) { 
      alert("Only alphabets"); 
     } 

     return true; 
    } 

    nameValidation(name); 
}; 

module.exports = FormValidation; 

的script.js(主叫formValidation.js)

'use strict'; 

var FormValidation = require("./formValidation"); 

的index.html

<form name="contact" action="#" method="post" enctype="text/plain"> 
<input type="text" name="name" placeholder="NAME"></br> 
<input type="text" name="email" placeholder="EMAIL" required></br> 
<input type="text" name="phoneNumber" placeholder="PHONE-NUMBER"></br> 
<input type="text-box" name="message" placeholder="MESSAGE"></br> 
<button id="submit" class="btn btn-primary" type="submit" onclick="return FormValidation()"><i class="fa fa-paper-plane">Submit</i></button></br> 
    </form> 
</div> 
<script src="js/script.js"></script> 
</body> 
</html> 

誰能告訴我什麼是錯誤?爲什麼我不能從onclick事件的html頁面調用FormValidation()?

+1

你沒裝'require.js',所以沒有功能'需要()'。 – Barmar

回答

0

你不能這樣做需要這樣的不一樣browserify

一個工具,你將不得不像這樣的另一個腳本添加到您的HTML文件。如果你使用的是node.js(後端),那麼require就可以毫無問題地工作,但是在客戶端你需要一個像browserify這樣的工具。

這裏是browserify少的解決方案:

<script src="js/formValidation.js"></script> 
+0

與webpack瀏覽器相同嗎?所以我需要將它壓縮在輸出文件script.min.js中,以使我的上述程序工作?你建議的解決方案工作,謝謝。 – LifeStartsAtHelloWorld

+1

我認爲它們是類似的工具,因爲它們都將文件捆綁到其他文件中。但是Browserify似乎依賴於其他工具,如gulp/grunt來更有效地完成其任務,而webpack自己完成這項工作。 Webpack有點難以建立。 –