2014-01-16 41 views
1

這是一個example.html的文件的onsubmit =「返回formValidate():」如果假也表單提交

<form name="test1" onsubmit="return formValidate();" action="test.html" method="post"> 
<input type="text" name="name"/> 
<input type="submit" value ="Submit"/> 

下面是HTML文件的代碼,其中有一個文本字段和一個提交按鈕。
下面的代碼是test.html代碼,其中表單在成功驗證後進行。

<body> 
    <p>hii </p> 
</body> 

我的JavaScript函數來驗證形式如下:formValidate.js

function formValidate(){ 
    var uname=document.test1.name; 
    if(alpha(uname)) 
    { 
    } 
    return false; 
} 
function alpha(uname){ 
    var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/; 
    if(uname.value.match(pattern)) 
    { 
     return true; 
    } 
    else 
    { 
     alert("Invalid input: only numeric not accepted"); 
     uname.focus(); 
     return false; 
    } 
} 

這裏是我的驗證碼,如果它返回false,它應該拋出一個警告訊息,指出無效的輸入。這工作正常。但是當它返回false時,我希望表單不會被提交到下一頁。 我該怎麼做?

+0

你有一個錯字:它可能應該是一個等式簽署的,而不是一個破折號這裏:'VAR UNAME = document.test1.name;' – Igle

+0

打字錯誤先生感謝通知: ) – user3201640

回答

0

試試這個

<form name="test1" action="test.html" methos="post" onsubmit="return formValidate();"> 
<input type="text" name="name"/> 
<input type="submit" value ="Submit"/> 
</form> 


function formValidate() 
{ 
    var uname=document.test1.name; 
    var pattern=/(?![0-9]*$)[a-zA-Z0-9]+$/; 
    if(uname.value.match(pattern)) 
    { 
     return true; 
    } 
    else 
    { 
     alert("Invalid input: only numeric not accepted); 
     uname.focus(); 
     return false; 
    } 
} 
+0

謝謝你會嘗試。 – user3201640

+0

我試過同樣的先生,但它不工作。如果驗證失敗並將false返回給onsubmit,它仍然會將我指向我不想要的test.html頁面。如果驗證失敗,我希望它保留在同一頁面中。 – user3201640

+0

然後檢查它是否返回false或true –

0

加入onsubmit事件:

<form onsubmit="return formValidate(event);" 

而你在你的代碼有語法錯誤。我固定的他們,試試這個:

function formValidate(e){ 
    var uname = document.test1.name;// fix - to = 

    if(alpha(uname)) { 
     //some code here? 
    } else { 
     e.preventDefault(); 
     return false; 
    } 

} 

function alpha(uname){ 
    var pattern = /(?![0-9]*$)[a-zA-Z0-9]+$/;//remove * 
    if(uname.value.match(pattern)) { 
     return true; 
    } else { 
     alert("Invalid input: only numeric not accepted); 
     uname.focus(); 
     return false; 
    } 
} 
+0

我修正了語法先生驗證正在發生完美,但同時returnimg,如果它的錯誤也formm被重定向到下一頁 – user3201640

+0

添加'e.preventDefault()',再次讀我的答案。 – Pinal

+0

謝謝你,先生。我是否將表單標籤或提交先生的輸入標籤添加onsubmit? – user3201640