반응형
제출하기 전에 양식에 필드를 추가하는 방법은 무엇입니까?
자바스크립트와 JQuery를 사용하여 POST를 사용하여 HTTP 양식에서 보낼 필드를 추가하는 방법이 있습니까?
내 말은:
<form action="somewhere" method="POST" id="form">
<input type="submit" name="submit" value="Send" />
</form>
<script type="text/javascript">
$("#form").submit( function(eventObj) {
// I want to add a field "field" with value "value" here
// to the POST data
return true;
});
</script>
네. 숨겨진 매개 변수로 시도해 보세요.
$("#form").submit( function(eventObj) {
$("<input />").attr("type", "hidden")
.attr("name", "something")
.attr("value", "something")
.appendTo("#form");
return true;
});
사용해 보십시오.
$('#form').submit(function(eventObj) {
$(this).append('<input type="hidden" name="field_name" value="value" /> ');
return true;
});
$('#form').append('<input type="text" value="'+yourValue+'" />');
추가할 수 있습니다.hidden
input
전송해야 할 값을 지정됩니다.
$('#form').submit(function(eventObj) {
$(this).append('<input type="hidden" name="someName" value="someValue">');
return true;
});
효과:
var form = $(this).closest('form');
form = form.serializeArray();
form = form.concat([
{name: "customer_id", value: window.username},
{name: "post_action", value: "Update Information"}
]);
$.post('/change-user-details', form, function(d) {
if (d.error) {
alert("There was a problem updating your user details")
}
});
다음과 같은 경우에 유용할 수:
(객체를 사용하여 양식에 데이터를 추가할 수 있는 함수로, 존재하는 경우 기존 입력에 대해 재정의함) [pure js]
(폼은 모델이지 jquery 객체가 아닙니다 [필요한 경우 jqryobj.get(0))].
function addDataToForm(form, data) {
if(typeof form === 'string') {
if(form[0] === '#') form = form.slice(1);
form = document.getElementById(form);
}
var keys = Object.keys(data);
var name;
var value;
var input;
for (var i = 0; i < keys.length; i++) {
name = keys[i];
// removing the inputs with the name if already exists [overide]
// console.log(form);
Array.prototype.forEach.call(form.elements, function (inpt) {
if(inpt.name === name) {
inpt.parentNode.removeChild(inpt);
}
});
value = data[name];
input = document.createElement('input');
input.setAttribute('name', name);
input.setAttribute('value', value);
input.setAttribute('type', 'hidden');
form.appendChild(input);
}
return form;
}
사용:
addDataToForm(form, {
'uri': window.location.href,
'kpi_val': 150,
//...
});
당신도 그렇게 사용할 수 있습니다.
var form = addDataToForm('myFormId', {
'uri': window.location.href,
'kpi_val': 150,
//...
});
원하는 경우 #("#myformid")를 추가할 수 있습니다.
Khawer의 답변을 확장하면 일관성을 위해 jQuery 사용을 자제할 수 있습니다.
<input type="hidden" name="field_name" value="value" />
언급URL : https://stackoverflow.com/questions/17809056/how-to-add-additional-fields-to-form-before-submit
반응형
'programing' 카테고리의 다른 글
UserControl, WebControl, RenderedControl 및 CompositeControl의 차이점은 무엇입니까? (0) | 2023.08.24 |
---|---|
PL/SQL: 테이블에서 연결 배열로 선택 (0) | 2023.08.24 |
오른쪽 테이블 결과에서 다차원 배열 가져오기 (0) | 2023.08.24 |
Mysql, 날짜 범위에서 파티셔닝이 작동하지 않습니다. (0) | 2023.08.24 |
배경 이미지와 색상을 함께 사용할 수 없는 이유는 무엇입니까? (0) | 2023.08.24 |