我需要编写一个java脚本。这应该验证是否在页面中选中了复选框。这里的问题是复选框位于网格内并动态生成。原因是在设计时不知道需要渲染的复选框的数量。所以id只在服务器端知道。
答案 0 :(得分:1)
你也必须生成你的javascript,或者至少包含你应该控制的复选框的javascript数据结构(数组)。
或者,您可以创建一个包含元素,并在复选框类型的每个子输入元素上使用js循环。
答案 1 :(得分: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);".... />
答案 2 :(得分:0)
如果它是您唯一的复选框,您可以执行getElementsByTagName()调用以获取所有输入,然后遍历返回的数组以查找相应的类型值(即复选框)。
答案 3 :(得分: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>