2012-12-02 87 views
3

我想在HTML表單上運行表單驗證以確保該人員填寫了兩個字段。我這裏放在一起的jsfiddle:表單驗證沒有運行onsubmit

http://jsfiddle.net/yCqqj/

它爲我以前的工作,我不知道現在發生了什麼事情。我製作了一個JSFiddle將其從我的網站中取出,以確保沒有任何其他內容與它發生衝突,但我現在意識到它是代碼中的東西。這兩個字段分別是名稱「emailaddress」和「名稱」,它看起來像我正確檢查它們的值。基本上,如果他們將任何一個字段留空,我正在尋找警報(而不是表單的提交)。感謝您幫助我追蹤問題。我很感激。

function ValidateForm(){ 
    var emailID=document.MailingList.emailaddress 
    var nameID=document.MailingList.Name 

     if ((nameID.value==null)||(nameID.value=="")){ 
     alert("Please Enter your Name"); 
     nameID.focus(); 
     return false; 
    } 

    if ((emailID.value==null)||(emailID.value=="")){ 
     alert("Please Enter your Email ID"); 
     emailID.focus(); 
     return false; 
    } 
} 

即使有不返回true,形式仍然提交。

回答

4

問題是您尚未在Head部分中定義ValidateForm。 我編輯了jsfiddle.check demo

+0

你是說那應該是頁面上的''標籤中?我試過在頁面本身,由於某種原因,它仍然無法正常工作?我是否正確地理解你? – MillerMedia

+0

嗯,是的工作:http://jsfiddle.net/yCqqj/2/。我可能需要檢查頁面上的衝突嗎? – MillerMedia

+0

我在開發人員工具中看到發生錯誤是因爲無法找到ValidateForm。我只是將它移動到head標籤並解決。 –

0

我可以看到兩個問題:

首先,什麼是echeck?如果我把這些代碼拿走,它就會起作用。 其次,在您控制nameID.value之後,您不應該返回。如果你這樣做,你不能控制emailID.value。

+0

如果我不做退貨,即使它是假的,它也不會提交表格嗎? – MillerMedia

+0

如果您返回false,表單將不會被引用。一旦你迴歸真實,它將被冒充。 – anders

+0

對,所以它會首先檢查名稱。如果名字在那裏,那麼它會檢查電子郵件。如果電子郵件在那裏,那麼它會返回true,對嗎?或者我有這個錯誤? – MillerMedia

0

爲了搭載Behnam的答案,這是因爲ValidateForm沒有像他說的那樣在head部分定義。但是,下面是如何解決它:

在jsfiddle中,框架&擴展的左上角區域中,將其設置爲no-wrap。然後更新並設置爲基礎以保存您的更改。

enter image description here