2014-09-13 50 views
0

我有一個表單和表單驗證代碼。對於第三種形式,當文本字段爲空並單擊提交按鈕時,會顯示一個警告框,提示缺少的字段是否正確。但是,當我點擊確定該提醒框時,它會消失,當前頁面將重定向到另一個頁面(這是不好的)。警報框消失後,它必須保留在該頁面上。只有這種情況發生在第三種形式,而不是前兩種形式。下面是代碼:警報框重定向到另一頁

HTML:

<form name="myForm3" action="kbc.jsp" method="post" onsubmit="validate_kbc()"> 
    <br/>MSISDN:<input type="text" name="MISDN" maxlength="11"> 
    <br/>SR:<input type="text" name="SR" maxlength="14"> 
    <br/><input type="submit" value="Submit"> 
    <br/><input type="reset" value="Reset">      
</form> 

的JavaScript:

function validate_kbc() 
    { 
    var k = document.forms["myForm3"]["MISDN"].value; 
    var l = document.forms["myForm3"]["SR"].value; 
    if(k == "" || l == "") 
    { 
      alert("Manadotry fields should not left blank"); 
      //  document.myForm1.MISDN.focus(); 
      //  document.myForm1.SR.focus(); 

     return false; 
    } 
    else if(!k.match(numbers)) 
    { 
     alert('Please input numeric characters only in MSISDN field'); 
     document.myForm3.MISDN.focus(); 
     return 0; 
    } 
    else if(!l.match(numbers)) 
    { 
     alert('Please input numeric characters only in SR field'); 
     document.myForm3.SR.focus(); 
     return false; 
    } 
    else 
     return true;  
} 

JSP:

<% 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection dbConnection =(Connection)DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/portal" ,"root" , "123"); 
    Statement st = dbConnection.createStatement(); 
    ResultSet rs = null; 
    String misdn=request.getParameter("MISDN"); 
    String sr=request.getParameter("SR"); 
    int i=st.executeUpdate("INSERT INTO kbc(MSISDN,SR) VALUES('"+misdn+"','"+sr+"')"); 
    out.println("Updated!!!!"); 

%> 
+0

不它轉到kbc.jsp?當您在警告框上單擊確定。 – Iansen 2014-09-13 16:11:45

+0

是@lansen它確實在DB中保存一個空記錄! – ABJ 2014-09-13 16:26:36

回答

0

嘗試onsubmit="return validate_kbc()"並從該函數中刪除else = return true;。輸入或者是假的,該函數將給予警告或不存在虛假輸入表單的輸入將被kbc.jsp

我希望這會工作,否則看被prosessed:http://www.w3schools.com/js/js_form_validation.asp

+0

函數validate_kbc只有在窗體輸入爲false時纔會響應。當輸入爲假和輸入爲真時,你的函數都會響應。所以試着去除else = return true語句 – 2014-09-13 16:33:09

+0

感謝它的工作! – ABJ 2014-09-13 16:33:28

+0

爲您服務;) – 2014-09-13 16:38:58