不使用jquery.validate.unobtrusive進行送出表單前進行簡易驗證

如果不使用jquery.validate.unobtrusive,只想做些簡單的驗證的話,可以用下面兩種方法來進行表單送出前驗證

1.再<form>加上onsubmit的屬性,此事件是發生在真正submit之前,所以我們可以用以下寫法來做簡易表單驗證
附上Fiddle網址:https://jsfiddle.net/dspeb07n/

<html>
  <head></head>
  <body>
    
    <form name="myForm" onsubmit="return validateForm()" method="post">
    <input id = "name" type = "text" value="test">
      
     <button type="submit">submit</button> 
</form>
    
    
  </body>
</html>

<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
function validateForm(){
	var len = $('#name').val().length;

	if(len <= 0){

		return false;  
  }
  else{
		return true; 
  }
}

 

2.使用JQuery + AJAX來進行表單送出前的驗證,與上一個做法比較不同的地方在於把button移出了表單,改由JQuery來控制表單的送出
附上Fiddle網址:https://jsfiddle.net/dspeb07n/2/

<html>
  <head></head>
  <body>
    
<form name="myForm" method="post">
    <input id = "name" type = "text" value="test">      
</form>
<button id = "subbtn" type="submit">submit</button> 
    
  </body>
</html>

<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
$(function(){
	$('#subbtn').on('click', function(){
  
  var len = $('#name').val().length;

	if(len <= 0){

		return false;  
  }
  else{
    	$("form").submit();
  }

	})
})

 

好的,總結以上,要做表單送出前的驗證有下面3種做法
1.jquery.validate.unobtrusive
2.再<form>裡面加上onsubmit屬性
3.使用<button>搭配JQuery的.submit()方法