2013-03-20 51 views
0

我正在爲學校的php文件工作,我們必須對名字,姓氏和電子郵件進行一些JavaScript驗證。如果一切正常,我們可以選擇是否要添加驅動程序或取消。如果出現問題,請回到表格。我在一個小頁面中完成了驗證腳本,並將它在那裏工作,但是當我將它放入我的php文件時,它將不再起作用。下面是一些代碼片段:驗證Javascript中的表單

<script type = "text/javascript" > 
function val_name() 
{ 
    var namePattern = /^[A-Za-z]{3,25}$/; 
    if(!namePattern.test(document.upload.fn.value)) 
      alert("Enter valid first name"); 

    if(!namePattern.test(document.upload.ln.value)) 
     alert("Enter valid last name"); 

    var x=document.forms["upload"]["email"].value; 
    var atpos=x.indexOf("@"); 
    var dotpos=x.lastIndexOf("."); 

    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) 
    { 
     alert("Not a valid e-mail address"); 
     return false; 
    } 
    else (confirm("Are you sure you want to add this driver?")== true) 
    { 
     window.location = 'add_driver.php'; 
    } 
} 
</script> 

    <form id="upload" action="<?php echo $_SERVER['php_self'];?>" method="post" enctype="multipart/form-data" onsubmit="val_name()"> 

This is part of the html - the email part of it 

<td> 
email 
</td> 
<td> 
<input type="text" id="email" name="email"/> 
</td> 
</tr> 
<tr> 
<td colspan="2" align="center"> 
<input type="submit" id="add_driver" name="add_driver" value="add_driver" /> 
<input type="reset" value="clear form"/> 
+0

嘗試使用JavaScript控制檯(chrome中的F12)來查看是否收到任何錯誤。你究竟是什麼意思,它不工作? – PherricOxide 2013-03-20 02:08:43

+0

當你嘗試這個時會發生什麼? – SomeSillyName 2013-03-20 02:08:55

+0

如果問題在於您的add_driver.php沒有獲取表單數據,那可能是因爲您正在重定向(window.location),而不是僅允許表單提交。 – SomeSillyName 2013-03-20 02:12:45

回答

1

這可能只是一個粘貼錯誤,但行

else (confirm("Are you sure you want to add this driver?")== true) 

是不可能做你的期望。我相信你想在那裏有一個else if

因爲它寫的是confirm會彈出,但它並沒有實際控制的任何流量,所以代碼

{ 
    window.location = 'add_driver.php'; 
} 

不管會發生下一場。

現在,與你一樣的問題,我不知道這是你看到的錯誤。但是,至少有一個代碼存在問題。

+0

我的意思是不工作是。我將跳過一個名稱並點擊提交,它應該彈出一個警告框但沒有任何反應。沒有警報或任何東西。 – 2013-03-20 03:05:24