2014-10-19 97 views
0

所以我想從我的html中使用「onfocus」屬性訪問我的.js文件中的函數,但它不起作用。我討厭不得不在HTML中編寫JS,這讓它變得混亂,以後再難以讀取/調試。你如何得到焦點從外部js文件中讀取

所以這裏是從 「JMLessons.html」 html代碼:

*<input type="text" required="required" id="pFirstName" name="pFirstName1" placeholder="Required" maxlength=35 minlength=1 onfocusout="pFN1()"></input> 

所以我想稱之爲 「pFN1()」 函數是在 「JMLessons/JMLessons.js」

我有此代碼的HTML頭部分:

<script type="text/javascript" src="JMLessons/JMLessons.js"></script> 

當我正確開啓和關閉標籤之間「」複製和粘貼功能到HTML中,並在它的工作原理瀏覽器中運行它,但只要在旁邊從瀏覽器中引用它並嘗試將它從JS文件中提取出來,然後將其打散。我甚至把這個函數複製並粘貼到JS中,因爲我認爲我可能寫錯了。那麼有沒有辦法在「.html」中使用onfocus並在單獨的「.js」文件中訪問函數?

這裏的JS功能以供參考:

function pFN1() 
{ 
    var p1n1 = document.getElementById("pFirstName"); 
     if (p1n1.value.length === 0 || p1n1.value === " ") 
      { 
       document.getElementById("pFirstName").className="wrongReq"; 
       return false; 
      } 
     if (/\d/.test(p1n1.value)) 
      { 
       document.getElementById("pFirstName").className="warningReq"; 
       return false; 
      } 
     else 
      { 
       document.getElementById("pFirstName").className="goodReq"; 
       return true; 
      }             
} 

它改變基於特殊條件的文本框的邊框顏色,讓用戶知道他/她是否正確輸入。

+0

文件夾JMLessons與JMLessons.html位於同一個文件夾中嗎? – scartag 2014-10-19 06:12:34

+0

是否包含在'window.onload()'或'$(document).ready()'或其他內容中的腳本'JMLessons.js'函數'pFN1()? – 2014-10-19 12:08:03

+0

scartag-是的。 Martin Ernst:不,不是,你可以詳細說明這兩件事,它們對我來說是新鮮的,我剛剛開始製作網站,我決定用鉛背心和無法游泳的方式深入到最深處。我爲我的繼父父親教了一個網站,他教導棒球需要一個表單發送到他的電子郵件,發送一個文本,併發布到一個掛起的日曆,他可以根據自己的喜好調整日程安排,然後發送文本/電子郵件對那些想要課程提醒的人來說,這是一個非常簡單的第一個網站,適合沒有任何經驗的人。 – RCCRF 2014-10-19 14:33:01

回答

0

這一切都取決於何時加載js文件。

嘗試將此代碼<script type="text/javascript" src="JMLessons/JMLessons.js"></script> 置於<head>標記中。 如果不起作用,請將相同的代碼放在html頁面的底部。

+0

查看OP的問題:'我在HTML頭部分有這個代碼'。而當把代碼放在底部的'focusout'時會引發一個錯誤'pFN1未定義'。 – 2014-10-19 09:29:36

+0

因此,也許正確的做法是在加載整個頁面後加載js文件 – Roysh 2014-10-19 11:43:55

+0

不,必須在調用它的輸入標記被解析之前定義函數'pFN1'。 – 2014-10-19 12:05:11