以下是我的表结构:-
Name Marks
A 12
B 41
C 13
D 24
E 91
F 89
G 87
表名为"login"。我的代码如下:-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form name='checkbox1[]' method="post" action="student_slected.php" >
<label class="cb1" for="checkbox1"> </label>
<input type="hidden" name="checkbox1[]" id="check" value="null">
<b><h3>Select students :-</h3></b>
<?php
mysql_connect("localhost", "root", "root1") or die (mysql_error ());
mysql_select_db("my_db") or die(mysql_error());
$strSQL = "SELECT Name FROM login ORDER BY Name";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs))
{
$man = $row['Name'];
echo '<input type="checkbox" value="'.$man.'" name="checkbox1[]" />';
echo $man;
echo "<br>";
}
mysql_close();
?>
</select>
<input type="submit" value="SUBMIT" style= "height:40px; width:150px; font-weight: bold; font-size:10;">
</form>
</body>
</html>
现在我想要一个使用JavaScript的警告框,当用户检查名称列表时,标记的总和不应超过100。即,如果用户选择A、B、D和e,则总和超过100,则应显示一条警告消息,说明"您不能超过100分的总和"。请帮我输入必要的代码。
如果您使用纯JavaScript而没有任何附加库,那么您应该将onchange事件放在复选框上。这将激活一个处理检查和取消检查事件的函数。此外,您应该添加一些内容,帮助JavaScript代码检测在计算总和时应该考虑的复选框。在这里,我放置了一个名为chkbox:的类
<input type="checkbox" value = "50" class="chkbox" onchange="jsFunction()" />
现在,对于您的JavaScript函数:
function jsFunction(element)
{
var sum = 0,i;
var elements = document.getElementsByClassName('chkbox');
for(i = 0;i<elements.length;i++)
{
if(elements[i].checked)
{
sum += parseInt(elements[i].value);
}
}
if(sum > 100)
{
alert("100 exceeded");
element.checked = false;
}
}
此代码只获取具有适当类的所有元素,检查名为checked的元素属性是否为true,以及是否将其值添加到总和中。
为了使Marks数据可用,您应该更改SQL查询:
$strSQL = "SELECT Name,Marks FROM login ORDER BY Name";
在php中创建复选框时,应将复选框值设置为当前行的Marks值:
echo '<input type="checkbox" value="'.$row['Marks'].'" class="chkbox" name="checkbox1[]" onchange="jsFunction(this)" />';
通过这种方式,可以将"标记"的值设置为复选框的值属性。