"JQuery 폼 submit"의 두 판 사이의 차이

(새 문서: ==개요== ;jQuery 폼 submit <source lang='html'> <form id="myForm" action="//jsonplaceholder.typicode.com/posts"> <input type="hidden" name="userId" value="1"> <input type="text...)
 
(사용자 5명의 중간 판 26개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;jQuery form submit
;jQuery 폼 submit
;jQuery 폼 submit
<source lang='html'>
;jQuery 폼 제출
 
==Non-AJAX 방식==
<syntaxhighlight lang='html' run>
<form id="form-destroy" method="post" action="delete.php">
<input type="hidden" name="postid" value="3">
</form>
 
<button id="btn-destroy">삭제하기</button>
 
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$("#btn-destroy").click(function(e) {
e.preventDefault();
if(!confirm('정말로 삭제하시겠습니까?')) return;
$('#form-destroy')[0].submit();
});
</script>
</syntaxhighlight>
 
==AJAX 방식==
===예시 1===
<syntaxhighlight lang='html' run>
<form id="myForm" action="//jsonplaceholder.typicode.com/posts">
<form id="myForm" action="//jsonplaceholder.typicode.com/posts">
   <input type="hidden" name="userId" value="1">
   <input type="hidden" name="userId" value="1">
   <input type="text" name="title" value="hello"><br>
   <input type="text" name="title" value="hello"><br>
   <textarea name="body">world</textarea><br>
   <textarea name="body">world</textarea><br>
   <input type="submit" value="Search">
   <button>Send</button>
</form>
</form>


14번째 줄: 37번째 줄:
   event.preventDefault();
   event.preventDefault();
   var url = $(this).attr( "action" );
   var url = $(this).attr( "action" );
var data = $(this).serialize();
  var data = $(this).serialize();
    
    
   $.post( url, data )
   $.post( url, data )
   .done(function( data ) {
   .done(function( data ) {
     console.log(data);
     console.log('--->', data.userId, data.title, data.body);
  });
});
</script>
</syntaxhighlight>
:→ Send 버튼을 누르면 콘솔창에 내용이 출력된다.
 
===예시 2===
* 예시 1의 변형판
* HTML로 작성하는 부분을 최소화하고 jQuery에서 처리하도록 하였다.
<syntaxhighlight lang='html' run>
<form id="myForm">
  <input type="text" name="title" value="hello"><br>
  <textarea name="body">world</textarea><br>
  <button>Send</button>
</form>
 
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$( "#myForm" ).submit(function( event ) {
  event.preventDefault();
 
  var data = $(this).serializeArray();
  data = data.concat([{name:"userId",value:1}]);
 
  $.post( "//jsonplaceholder.typicode.com/posts", data )
  .done(function( data ) {
    console.log( data.title, data.body );
   });
   });
});
});
</script>
</script>
</source>
</syntaxhighlight>
<jsfiddle height='100'>nm8o3e3d</jsfiddle>


==같이 보기==
==같이 보기==
* [[jQuery 폼 유효성검사 후 제출하기]]
* [[jQuery $.post()]]
* [[jQuery $.post()]]
* [[HTML form 태그]]
* [[HTML form 태그]]
* [[Vue.js 폼 submit]]


==참고 자료==
==참고==
* https://api.jquery.com/jquery.post/
* https://api.jquery.com/jquery.post/


[[분류: Form]]
[[분류: HTML form]]
[[분류: jQuery]]
[[분류: jQuery]]

2021년 5월 6일 (목) 21:01 기준 최신판

1 개요[ | ]

jQuery form submit
jQuery 폼 submit
jQuery 폼 제출

2 Non-AJAX 방식[ | ]

<form id="form-destroy" method="post" action="delete.php">
<input type="hidden" name="postid" value="3">
</form>

<button id="btn-destroy">삭제하기</button>

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$("#btn-destroy").click(function(e) {
	e.preventDefault();
	if(!confirm('정말로 삭제하시겠습니까?')) return;
	$('#form-destroy')[0].submit();
});
</script>

3 AJAX 방식[ | ]

3.1 예시 1[ | ]

<form id="myForm" action="//jsonplaceholder.typicode.com/posts">
  <input type="hidden" name="userId" value="1">
  <input type="text" name="title" value="hello"><br>
  <textarea name="body">world</textarea><br>
  <button>Send</button>
</form>

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$( "#myForm" ).submit(function( event ) {
  event.preventDefault();
  var url = $(this).attr( "action" );
  var data = $(this).serialize();
  
  $.post( url, data )
  .done(function( data ) {
    console.log('--->', data.userId, data.title, data.body);
  });
});
</script>
→ Send 버튼을 누르면 콘솔창에 내용이 출력된다.

3.2 예시 2[ | ]

  • 예시 1의 변형판
  • HTML로 작성하는 부분을 최소화하고 jQuery에서 처리하도록 하였다.
<form id="myForm">
  <input type="text" name="title" value="hello"><br>
  <textarea name="body">world</textarea><br>
  <button>Send</button>
</form>

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
$( "#myForm" ).submit(function( event ) {
  event.preventDefault();
  
  var data = $(this).serializeArray();
  data = data.concat([{name:"userId",value:1}]);
  
  $.post( "//jsonplaceholder.typicode.com/posts", data )
  .done(function( data ) {
    console.log( data.title, data.body );
  });
});
</script>

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}