2008-09-23 113 views
0

我需要编写一个java脚本。这应该是验证,如果复选框被选中在页面中或没有。这里的问题在于复选框位于网格内并且是动态生成的。原因是需要呈现的复选框的数量在设计时不知道。所以这个id只在服务器端知道。动态客户端脚本

+0

ASP.Net,对不对?编辑问题以包含服务器端平台的标签。 – 2008-09-23 13:09:26

回答

1

这里有一个想法:

如匿名表示可以生成JavaScript,如果你在ASP.NET你有一些帮助的RegisterClientScriptBlock()方法。 MSDN on Injecting Client Side Script

你也可以写,或生成一个JavaScript函数,在一个复选框作为一个参数,并添加一个onclick属性来调用你的函数,并将自身作为参数

function TrackMyCheckbox(ck) 
{ 
    //keep track of state 
} 

<input type="checkbox" onClick="TrackMyCheckbox(this);".... /> 
0

如果这是您唯一的复选框,您可以执行getElementsByTagName()调用来获取所有输入,然后遍历返回的数组,以查找适当的类型值(即复选框)。

1

您还必须生成您的JavaScript,或者至少一个JavaScript数据结构(数组),它必须包含您应该控制的复选框。

或者,您可以创建一个包含元素,并在js类型复选框的每个子输入元素上循环。

0

您的复选框定义问题中没有太多细节。但假设HTML网格是在服务器端生成的(不是在javascript中)。

然后将类添加到要确保检查的复选框。并通过DOM循环查找该类的所有复选框。在jQuery

HTML:

<html> 
... 

<div id="grid"> 
    <input type="checkbox" id="checkbox1" class="must-be-checked" /> 
    <input type="checkbox" id="checkbox2" class="not-validated" /> 
    <input type="checkbox" id="checkbox3" class="must-be-checked" /> 
    ...  
    <input type="checkbox" id="checkboxN" class="must-be-checked" /> 
</div> 

... 
</html> 

的Javascript:

<script type="text/javascript"> 

    // This will show an alert if any checkboxes with the class 'must-be-checked' 
    // are not checked. 
    // Checkboxes with any other class (or no class) are ignored 
    if ($('#grid .must-be-checked:not(:checked)').length > 0) { 
    alert('some checkboxes not checked!'); 
    } 

</script>