我使用了一系列的复选框,它们都具有不同的名称,即checkbox1....checkbox40。我正在生成一系列带有'1‘和'0’的字符串,即如果复选框被选中,那么字符串将与'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。请给我一些提示来实现这个想法。
发布于 2011-09-05 16:03:51
所以..。像这样的东西?
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’,然后返回连接到一个字符串中的数组。它不是特定于特定名称的,所以如果表单中有其他复选框,请让我知道,我会修改我的答案。
发布于 2011-09-05 16:57:52
如果只有已命名的复选框,则应执行以下操作:
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元素更容易,通常的做法是使用ID标识。因此,您可以增强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;
}https://stackoverflow.com/questions/7305080
复制相似问题