I have a 형 이름이 '' 러더프로두스포르마 및 정의되지 않은 수의 투입물.
I want to do 함정이거나 제크리스제) 나 아약스 또는 전화를 하는 그런 건 아무것도 페이징할 및 전송할 수 있는 모든 형태의 '' 러더프로두스포르마 투입물 따라 ajax .
예를 들어, 한 가지 방법은 내가 뭔가를 약간만이라도 같은
jQuery.get("myurl",
{action : document.orderproductForm.action.value,
cartproductid : document.orderproductForm.cartproductid.value,
productid : document.orderproductForm.productid.value,
...
그러나 내가 정확히 모르는 모든 양식 투입물. 모든 양식 투입물 보내라고 아니하였으매 기능이나 생각하신거야 있나요?
이는 단순한 참조:
// this is the id of the form
$("#idForm").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response from the php script.
}
});
});
발달장애인지원법은 도움이 됩니다.
아이아스포르마 아이아스서브미스 기능을 사용할 수 있습니다 / 는 아약스 양식 플러그인에는 또는 직렬화할 기능을 포함한다.
$("#theForm").ajaxForm({url: 'server.php', type: 'post'})
또는
$("#theForm").ajaxSubmit({url: 'server.php', type: 'post'})
아이아스포르마 제출됩니다 버튼을 누를 때 보낼 예정이다. 아이아스서브미스 sends 지원했다.
$.get('server.php?' + $('#theForm').serialize())
$.post('server.php', $('#theForm').serialize())
또 다른 유사한 속성을 사용하여 솔루션이므로 양식에 정의되어 요소:
<form id="contactForm1" action="/your_url" method="post">
<!-- Form input fields here (do not forget your name attributes). -->
</form>
<script type="text/javascript">
var frm = $('#contactForm1');
frm.submit(function (e) {
e.preventDefault();
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
console.log('Submission was successful.');
console.log(data);
},
error: function (data) {
console.log('An error occurred.');
console.log(data);
},
});
});
</script>
몇 가지 점을 유념해야 합니다.
1. 방법에는 여러 가지가 있습니다 양식 제출
따라서 이 아닌 이벤트 , 폼 귀의한다면 해야 바인딩하지 버튼 클릭 > 이벤트. 그러면 우리의 모든 장치와 보조 기술의 현재와 미래에 대한 코드를 사용해야 합니다.
2. 게이아스
Javascript 활성화됨 없을 수 있습니다. A 게이아스 패턴이 优秀 임무야, 여기서 우리가 제어할 수 있지만, 이 경우 남겨두십시오 서브미스터블 가볍게 양식 JavaScript 를 사용하여 JavaScript 작동하지 않습니다.
저희는 인도되지못하였으리라 당기십시오 uirl 및 방법, 만일 양식에서 HTML 변경, 우리는 # 39, JavaScript 업데이트하려면 don& 필요한 건 아니다.
3. 눈에 띄지 않는 JavaScript
속도용 *
우리는 우리의 스크립트입니다 삽입하는 대신 외부 스크립트를 사용하는 것이 이상적입니다 인라인. We can https://partner. microsoft. 이 머리에 섹선에서 스크립트를 사용하여 페이지의 링크를 페이지 하단에 있는 태그 또는 그 속도에 대한. 스크립트는 사용자가 아닌 경험하십시오 조용히 강화하십시오 get in the way.
그래 양실장 가정하고 위의 모든 이벤트 및 처리할 수 있는 강한 하려면 제출됩니다 통해 이를 아약스 (a 게이아스 패턴), 할 수 있는 이 같은 일이.
$(function() {
$('form.my_form').submit(function(event) {
event.preventDefault(); // Prevent the form from submitting via the browser
var form = $(this);
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize()
}).done(function(data) {
// Optionally alert the user of success here...
}).fail(function(data) {
// Optionally alert the user of an error here...
});
});
});
양식 제출 등 때마다 다음과 같은 항목을 사용하여 JavaScript 를 통해 수동으로 트리거하지 수 있습니다.
$(function() {
$('form.my_form').trigger('submit');
});
이를 위해 최근 및 됐지 내가 쓰는 플러그인에는 했다.
(function($) {
$.fn.autosubmit = function() {
this.submit(function(event) {
event.preventDefault();
var form = $(this);
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize()
}).done(function(data) {
// Optionally alert the user of success here...
}).fail(function(data) {
// Optionally alert the user of an error here...
});
});
return this;
}
})(jQuery)
이 양식에 데이터 오토서브미스 추가하기에서는 태그와 속성을 재동기화할 수 있습니다.
<form action="/blah" method="post" data-autosubmit>
<!-- Form goes here -->
</form>
$(function() {
$('form[data-autosubmit]').autosubmit();
});
var formData = new FormData(document.getElementsByName('yourForm')[0]);// yourForm: form selector
$.ajax({
type: "POST",
url: "yourURL",// where you wanna post
data: formData,
processData: false,
contentType: false,
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage); // Optional
},
success: function(data) {console.log(data)}
});
포르마다타 사용하는 방법입니다.
<form action="/my/ajax/url" class="my-form">
...
</form>
<script>
(function($){
$("body").on("submit", ".my-form", function(e){
e.preventDefault();
var form = $(e.target);
$.post( form.attr("action"), form.serialize(), function(res){
console.log(res);
});
});
)(jQuery);
</script>
It 는 수정된 버전의 [Alfrekjv& # 39 의] (https://stackoverflow.com/users/804978/alfrekjv) 오토메이티드
JavaScript
jQuery(document).submit(function(e){
var form = jQuery(e.target);
if(form.is("#form-id")){ // check if this is the form that you want (delete this check to apply this to all forms)
e.preventDefault();
jQuery.ajax({
type: "POST",
url: form.attr("action"),
data: form.serialize(), // serializes the form's elements.
success: function(data) {
console.log(data); // show response from the php script. (use the developer toolbar console, firefox firebug or chrome inspector console)
}
});
}
});
내가 하고 싶은 것이 너무 Alfrekjv& 편집하십시오, s # 39 에서 이 같은 질문에 답할 수 있도록 별도의 게시물로의 정보의 했다.
예를 들어, 곷떒 보내지 않는 파일을 지원하지 않는 버튼 클릭 (제출) 버튼을 등) 가 있지만, 이 때문에 ajax 요청을 백업이었습니다 버튼을 클릭하면 해당 값을 양식 데이터로 전송되지 않습니다.
대신 실제 버튼 클릭 > 제출됩니다 캡처하기 곷떒 지원할 수 있습니다.
jQuery(document).click(function(e){
var self = jQuery(e.target);
if(self.is("#form-id input[type=submit], #form-id input[type=button], #form-id button")){
e.preventDefault();
var form = self.closest('form'), formdata = form.serialize();
//add the clicked button to the form data
if(self.attr('name')){
formdata += (formdata!=='')? '&':'';
formdata += self.attr('name') + '=' + ((self.is('button'))? self.html(): self.val());
}
jQuery.ajax({
type: "POST",
url: form.attr("action"),
data: formdata,
success: function(data) {
console.log(data);
}
});
}
});
서버 측에서 [감지할 ajax 요청을] 수 있습니다 (http://davidwalsh.name/detect-ajax) 에 있는 '세트' 이 헤더입니다 HTTP_X_REQUESTED_WITH jquery php 용
PHP
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//is ajax
}
이 코드를 가지고도 작동됨 파일 입력
$(document).on("submit", "form", function(event)
{
event.preventDefault();
$.ajax({
url: $(this).attr("action"),
type: $(this).attr("method"),
dataType: "JSON",
data: new FormData(this),
processData: false,
contentType: false,
success: function (data, status)
{
},
error: function (xhr, desc, err)
{
}
});
});
정말 좋아했잖아 이 오토메이티드 에서 슈퍼루미나리, 특히 이 솔루션을 랩된 운행에서어떠한 그는 a 플러그인에는 포함한다. 그래서 덕분에 슈퍼루미나리 매우 유용한 대답. 저의 경우는 있지만, 내가 바라는 오류 및 플러그인에는 허용하지 않는 정의하십시오 성공을 통해 이벤트 핸들러도 옵션뿐 플러그인에는 때 이 초기화되었는지.
여기서는 내가 지었지.
;(function(defaults, $, undefined) {
var getSubmitHandler = function(onsubmit, success, error) {
return function(event) {
if (typeof onsubmit === 'function') {
onsubmit.call(this, event);
}
var form = $(this);
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize()
}).done(function() {
if (typeof success === 'function') {
success.apply(this, arguments);
}
}).fail(function() {
if (typeof error === 'function') {
error.apply(this, arguments);
}
});
event.preventDefault();
};
};
$.fn.extend({
// Usage:
// jQuery(selector).ajaxForm({
// onsubmit:function() {},
// success:function() {},
// error: function() {}
// });
ajaxForm : function(options) {
options = $.extend({}, defaults, options);
return $(this).each(function() {
$(this).submit(getSubmitHandler(options['onsubmit'], options['success'], options['error']));
});
}
});
})({}, jQuery);
나에게 이 플러그인을 사용하면 매우 쉽게 ajaxify" "; , 론스베미스 페이지의 html 양식 제공하십시오 성공 및 오류 이벤트 핸들러도 사용자에게 피드백 구현할 수 있는 상태의 양식 제출. 이 플러그인에는 다음과 같이 사용할 수 있도록 했다.
$('form').ajaxForm({
onsubmit: function(event) {
// User submitted the form
},
success: function(data, textStatus, jqXHR) {
// The form was successfully submitted
},
error: function(jqXHR, textStatus, errorThrown) {
// The submit action failed
}
});
나는 attaboy 대해 다음과 같이 봐요.
formSubmit('#login-form', '/api/user/login', '/members/');
여기서
function formSubmit(form, url, target) {
$(form).submit(function(event) {
$.post(url, $(form).serialize())
.done(function(res) {
if (res.success) {
window.location = target;
}
else {
alert(res.error);
}
})
.fail(function(res) {
alert("Server Error: " + res.status + " " + res.statusText);
})
event.preventDefault();
});
}
이 원하는 대로 변경할 수 있습니다. 스니핏 무료로 사용할 수 있는 것.
jquery 는 단지 양식 제출 양식을 사용하여 AJAX , 양식 제출) 버튼을 누르면 id
제발 단계를
1 단계 - ID 필드 양식 태그를 있어야 합니다.
<form method="post" class="form-horizontal" action="test/user/add" id="submitForm">
.....
</form>
버튼 클릭 수 있는 것입니다.
<button>Save</button>
2 단계 - 이벤트 jQuery 에 제출할 수 있는 양식 제출. json 의 이름 아래 코드를 HTML 요소 요청에 저희에게는힘과 준비하고 있다.
$("#submitForm").submit(function(e) {
e.preventDefault();
var frm = $("#submitForm");
var data = {};
$.each(this, function(i, v){
var input = $(v);
data[input.attr("name")] = input.val();
delete data["undefined"];
});
$.ajax({
contentType:"application/json; charset=utf-8",
type:frm.attr("method"),
url:frm.attr("action"),
dataType:'json',
data:JSON.stringify(data),
success:function(data) {
alert(data.message);
}
});
});
아래 링크를 클릭하여 실시간 데모
[제출 방법을 사용하여 양식을 jQuery 아약스?] [1]
[1]: https://www.youtube.com/watch? v = Ln6A5Koo7Bc
'가장' 사용하는 것이 좋습니다
$('table+table form').closest('tr').filter(':not(:last-child)').submit(function (ev, frm) {
frm = $(ev.target).closest('form');
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert(data);
}
})
ev.preventDefault();
});
제출됩니다 아래에 있는 이 같은 기능을 사용할 수 있습니다.
HTML 양식
<form class="form" action="" method="post">
<input type="text" name="name" id="name" >
<textarea name="text" id="message" placeholder="Write something to us"> </textarea>
<input type="button" onclick="return formSubmit();" value="Send">
</form>
jQuery 기능:
<script>
function formSubmit(){
var name = document.getElementById("name").value;
var message = document.getElementById("message").value;
var dataString = 'name='+ name + '&message=' + message;
jQuery.ajax({
url: "submit.php",
data: dataString,
type: "POST",
success: function(data){
$("#myForm").html(data);
},
error: function (){}
});
return true;
}
</script>
자세한 내용 및 샘플링합니다 vmware. com/products/vmmark/overview. http://www.spiderscode.com/simple-ajax-contact-form/
하지만 경우에 사용할 경우, DOM, 정적 형 can& t # 39 이 같은 시도하시겠습니까 수도 있습니다.
var $form = $('<form/>').append(
$('<input/>', {name: 'username'}).val('John Doe'),
$('<input/>', {name: 'user_id'}).val('john.1234')
);
$.ajax({
url: 'api/user/search',
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
data: $form.serialize(),
success: function(data, textStatus, jqXHR) {
console.info(data);
},
error: function(jqXHR, textStatus, errorThrown) {
var errorMessage = jqXHR.responseText;
if (errorMessage.length > 0) {
alert(errorMessage);
}
}
});
그냥 친화적임 객체여야 수 있음을 상기시켜 주는 '데이터', 고쳐주렴:
"' $ (& # 39, 양식, # # 39 foo&) 오서브미스 (함수 () { $ 지아이아스 ({ url: # 39, & # 39 http://foo.bar/some-ajax-script&;; 유형: # 39, & # 39 POST&;; 데이터 형식: # 39, & # 39 json&;; 데이터: {
} 지아우와이스 (함수 (데이터) {}) 콘솔드로그 (데이터). }).
반품하십시오 거짓값. }). "'
Jquery 는 '일' 관련 질문, 이젠 알아, JS ES6 있는 것들이 훨씬 간편해집니다. ',' 오토메이티드 추가할 수 있을 줄 알았는데 순수 javascript 없기 때문에 간단한 해결책을 내 의견으로는 '이 있으며, 순수 javascript', ' () 의 API 를 사용하여 보다 깔끔할거야 페치할. 이 방법은 첨단 네트워크 구축 요청. 네 경우엔 이미 가지고 있기 때문에 우리는 이를 이용하여 우리의 요청에 구축하십시오 양식 요소를 쉽게 할 수 있습니다.
const form = document.forms["orderproductForm"];
const formInputs = form.getElementsByTagName("input");
let formData = new FormData();
for (let input of formInputs) {
formData.append(input.name, input.value);
}
fetch(form.action,
{
method: form.method,
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error.message))
.finally(() => console.log("Done"));
또한 이벤트 # 39 의 there& 제출됩니다 트리거될 수 있는데, 이렇게 $ (", # form_id") 오서브미스 (). # 39 이 방법을 사용하여 표현할 경우, d you& 양식이 잘 HTML 상태다. # 39; d 그냥 you& 읽어들입니다 페이지이므로 함께 물건을 채우는 양식 투입물 어졌다면 매입옵션 오서브미스 (). # 39 에 정의된 메서드를 사용하여 it&, ll, 액션, s, t need to # 39 form& 선언, 그러니까 javascript don& # 39 를 복사합니다.
[예] (http://docs.jquery.com/Events/submit # 예)