2011-09-05 98 views
0

我正在使用一系列复选框,所有复选框的名称都是checkbox1 .... checkbox40。如果复选框被选中,我将生成一系列的'1'和'0'sting,而sting将与'1'连接,否则它将连接'0'。我已经成功实现了PHP的想法,但现在我正在使用Ajax我想为Java脚本开发相同的代码。我的PHP代码是修改PHP代码从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。请给我提示实施这个想法。

回答

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”的阵列中,则返回所述阵列连接成一个字符串。它不是特定于某个特定名称,所以如果表单中有其他复选框,请通知我,我会更改我的答案。

+0

复选框被命名为'restriction1 .... restriction40.'和形式具有ID'theForm' –

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; 
}