我使用的是一系列复选框,它们的名称都是checkbox1 .... checkbox40。我正在生成一系列带有'1'和'0'的刺痛,如果选中复选框,则sting将与'1'连接,否则它将与'0'连接。我已经成功实现了PHP的想法但是现在我正在使用Ajax我想为java脚本开发相同的代码。我的PHP代码是
if (isset($_POST[submit]))
{
for ($i=1; $i<41; $i++)
{
$walue = "restriction".$i;
if(isset($_POST[$walue])) {$val .="1";} else {$val .="0";}
}
}
echo "Equivalent String: ".$val."<p>";
使用Javascript实现它我已经在表单的提交事件上调用了一个函数。
我的表单ID为theForm
,我的复选框名称为restriction1....restriction40
。请给我提示实施这个想法。
答案 0 :(得分:1)
那么......这样的事情?
getCheckedString = function () {
var chunks = [];
var checkboxes = $("#theForm").children('input[type=checkbox]').each(function () {
chunks[chunks.length] = $(this).is(':checked') ? '1' : '0';
});
return chunks.join('');
}
这将按照它们在表单上的顺序收集所有复选框,在数组中放置“1”或“0”,然后将连接的数组返回到字符串中。它不是特定的名称,所以如果表格中有其他复选框让我知道,我会改变我的答案。
答案 1 :(得分:1)
如果您只有命名复选框,则可以执行以下操作:
function getCheckedString1() {
var val = "";
for (var i = 1; i <= 40; ++i) {
var boxes = document.getElementsByName("restriction" + i); // returns an array
if (boxes[0]) {
val += boxes[0].checked ? "1" : "0";
}
}
// alert(val);
return val;
}
然而,通过ID识别引用的HTML元素更容易且通常的实践。所以,你会增强你的HTML:
<input type="checkbox" name="restriction1" id="restriction1" ...
<input type="checkbox" name="restriction2" id="restriction2" ...
然后使用:
function getCheckedString2() {
var val = "";
for (var i = 1; i <= 40; ++i) {
var box = document.getElementById("restriction" + i); // returns the unique element
if (box) {
val += box.checked ? "1" : "0";
}
}
// alert(val);
return val;
}