我正在将表单发送到我有限访问权的外部服务器。我有一个表单,其中包含许多用户感兴趣的不同产品的复选框。我需要在一个字符串中发送这些表格,列出他们检查的所有产品。
我知道我需要使用JavaScript来捕获选择并将它们组合成一个变量,然后通过POST将其发送到外部服务器。我对Javascript的经验不是很熟悉。
答案 0 :(得分:3)
我只是会在提交表单(DEMO)后给你一个关于如何查看选中复选框的提示。
想象一下,你有以下html:
<form id="testForm">
<input class="checkbox" name="one" type="checkbox">
<input class="checkbox" name="two" type="checkbox">
<input class="checkbox" name="three" type="checkbox">
<input type="hidden" name="checkboxStr" id="checkbox_str">
<button>Send</button>
</form>
您可以为表单提交添加事件监听器:
var form = document.getElementById('testForm');
try {
form.addEventListener("submit", submitFn, false);
} catch(e) {
form.attachEvent("onsubmit", submitFn); //IE8
}
然后你可以获得所有需要的复选框,例如它的类名。 循环通过它们并将已检查的数据添加到一个数组中,稍后您将该数组连接到字符串。
function submitFn(event) {
event.preventDefault();
var boxes = document.getElementsByClassName('checkbox');
var checked = [];
for(var i=0; boxes[i]; ++i){
if(boxes[i].checked){
checked.push(boxes[i].name);
}
}
var checkedStr = checked.join();
document.getElementById('checkbox_str').value = checkedStr;
form.submit();
return false;
}
您现在可以通过ajax发送此字符串,或者您可以添加隐藏的表单字段并将字符串设置为其值并提交不带ajax的表单。
答案 1 :(得分:1)
首先,您需要获取名称值对并将其存储到对象中:
var obj = {}; // this will hold your name value pairs
从那里,您可以使用JSON将数据发送到服务器。 JSON数据在发送到服务器时是字符串形式。
var json_string = JSON.stringify(obj);