以下是我的表结构: -
Name Marks
A 12
B 41
C 13
D 24
E 91
F 89
G 87
表名是“登录”。我的代码如下: -
<!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的总和”。请帮我提供必要的代码。
答案 0 :(得分:0)
如果您使用纯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)" />';
这样,您可以将Marks的值设置为复选框的值属性。