2012-08-24 59 views
1

我想要顯示錯誤消息,如果我嘗試提交空表單。下面的代碼顯示了應該發生什麼。表單提交不會顯示錯誤消息如果爲空

function prepareEventHandlers() { 
document.getElementById("frmContact").onsubmit = function() { 
    if (document.getElementById("email").value == '') { 
     document.getElementById("errorMessage").innerHTML = 'Please provide at least an email address!'; 
     return false; 
    } 
    else { 
     document.getElementById("errorMessage").innerHTML = ''; 
     return true; 
    } 
}; 
} 


window.onload = function() { 
prepareEventHandlers(); 
} 

這裏是它我CSHTML端的代碼:

<form id="frmContact" method="post"> 
<fieldset> 
<legend>Personal Information</legend> 
<p>email and other elements here.</p> 
<div> 
<input type="checkbox" name="checkbox1" checked="false" /> 
Remind me later <br /> 
</div> 
<p><span id="errorMessage"></span></p> 
<input type="submit" value="Send" id="send"/> 
</fieldset> 
</form> 
<script src="http://localhost:53734/Scripts/JScript3.js"></script> 

我嘗試調試它,但它並不呼籲點擊prepareEventHandlers方法。還嘗試在表單上方粘貼腳本標籤,但這也沒有做任何事情。

回答

1

您的表單沒有電子郵件的輸入元素。您的JavaScript正在尋找一個帶有電子郵件ID(推測爲輸入)的元素,但您的表單缺少它。

變化:

<p>email and other elements here.</p> 

到:

<p><input id="email" /></p> 

然後你的代碼工作正常。 jsFiddle example

1

您必須擁有一個元素以及相應的ID才能使驗證生效。 。 。在這裏你沒有一個電子郵件ID元素,但您要驗證

嘗試以下

<input type="text" id="email"/> 

Here is the fiddle

相關問題