2013-07-31 41 views
0

我已经尝试了所有使用javascript的提交按钮,以在提示所有输入字段时显示 。使用Javascript来进行验证并提交提醒结果

例子。当用户填写表单时,它会验证,然后点击 提交,以显示警报中的结果,如名称,成本,地址 和电话等。我试图在JavaScript上练习,但不能 获得我想要的结果。

有人可以帮忙!

这是我的脚本。

<script type="text/javascript">  
// Form validation code will come here.  
var Num1 = document.getElementById('1stTotal').value; 
var Num2 = document.getElementById('2ndTotal').value; 
var Num3 = document.getElementById('3rdTotal').value; 
var Total = Num1 + Num2 + Num3; 
grandTotal.value = Total; 
function validate() { 
    if (document.myForm.Name.value == "") { 
     alert("Please provide your name!"); 
     document.myForm.Name.value.focus(); 
     return false; 
    } 
    if (document.myForm.Street.value == "") { 
     alert("Please provide your Street!"); 
     document.myForm.Street.value.focus(); 
     return false; 
    } 
    if (document.myForm.City.value == "") { 
     alert("Please provide your City!"); 
     document.myForm.City.focus(); 
     return false; 
    } 
    if (document.myForm.Postal.value == "" || isNaN(document.myForm.Postal.value) || document.myForm.Postal.value.length != 7) { 
     alert("Please provide a Postal in the format xxx-xxx."); 
     document.myForm.Postal.focus(); 
     return false; 
    } 
    if (document.myForm.Telephone.value == "" || isNaN(document.myForm.Telephone.value) || document.myForm.Telephone.value.length != 12) { 
     alert("Please provide a Telephone in the format xxx-xxx-xxxx."); 
     document.myForm.Telephone.focus(); 
     return false; 
    } 
    var emailID = document.myForm.Email.value; 
    atpos = emailID.indexOf("@"); 
    dotpos = emailID.lastIndexOf("."); 
    if (atpos < 1 || (dotpos - atpos < 2)) { 
     alert("Please provide a valid email."); 
     document.myForm.Email.focus(); 
     return false; 
    } 
    if (document.myForm.CardNo.value == "" || isNaN(document.myForm.CardNo.value) || document.myForm.CardNo.value.length != 16) { 
     alert("Please provide a Credit Card Number in the format 123456789."); 
     document.myForm.CardNo.focus(); 
     return false; 
    } 
    if (document.myForm.Expiry.value == "" || isNaN(document.myForm.Expiry.value) || document.myForm.Expiry.value.length != 10) { 
     alert("Please provide a Expiry in the format MM-DD-YYYY."); 
     document.myForm.Expiry.focus(); 
     return false; 
    } 
    return (true); 
} 
function greeting() { 
    alert("Hello " + Name + "," + "<br />" + "Your book order includes:"); 
} < /script> 
+0

份额的HTML代码 – Praveen

回答

0

如果您使用核心原生JavaScript,您可能会遇到与浏览器不同的解释/渲染/兼容性相关的问题。

我强烈建议您使用像mootoolsjQuery这样的js框架。

然后,您将能够非常容易地选择表单元素并正确地验证表单。

当然,你需要先研究了一下已选定的框架,但相信你一定会很幸福呢:)

编辑:另外,请记住,任何代码引用任何HTML元素,必须在元素创建后调用。换句话说,您应该将函数调用包装在onload或ondomready事件中。

+0

OP提到,他/她是学JS,所以最好不建议任何库。 – Praveen

0

请不要有一个接一个的警报。非常烦人的用户界面。每次无效输入后都不要返回。一次做完所有事情。

而是为每个无效输入生成一串消息。从空字符串开始。最后,如果字符串有长度,请提醒它。否则,你是有效的。

所以第一部分可能是这样的:

var str = ""; 
function validate() { 
if (document.myForm.Name.value == "") { 
    str += "Please provide your name!\n"; // use a newline in alerts 
} 
// etc. 
// 
if (str.length > 0) { 
    alert(str); 
} 
// but there are better ways than alert, too. 
0

我已经能够做到这一点很容易使用“的onmouseover”调用函数和所有你想要的“否则,如果”语句。警报将一次一个地处理每个所需的输入字段,而不会一个接一个地发出一系列警报。

function subCheck() { 
 
\t \t if (document.myForm.Contact.value === "") { 
 
\t \t \t alert("Contact Name Required"); 
 
\t \t \t document.myForm.Contact.focus(); 
 
\t \t } 
 
\t \t else if (document.myForm.Email.value === "") { 
 
\t \t \t alert("Contact Email Required"); 
 
\t \t \t document.myForm.Email.focus(); 
 
\t \t } 
 
\t }
<form name="myForm"> 
 
Contact Name: <input type="text" name="Contact"><br /><br /> 
 
Contact Email: <input type="text" name="Email"><br /><br /> 
 
<input type="submit" name="submit" class="button" value="SUBMIT" onmouseover="subCheck()"></form>

相关问题