如果有任何两个选定的下拉列表,我可以知道如何显示消息框吗?价值是一样的吗?
这是我对这些下拉列表的编码:
<form action="checkresult2.php">
<table class="p1" bgcolor="#FFFFCC" bordercolor="#000000" align="center" width="771" border="2">
<tr>
<td><div align="center"><strong>No.</strong></div></td>
<td><div align="center"><strong>Subject Name</strong></div></td>
<td><div align="center"><strong>Grade</strong></div></td>
</tr>
<?php
for($i=1; $i<=10; $i++)
{?>
<tr>
<td width="42"><div align="center"><?php echo $i; ?></div></td>
<td width="539">
<select id="subject_opt" name="subj[]">
<option value="">--- Please choose a subject ---</option>
<?php
$result = mysql_query("SELECT * FROM spm_subject");
while($s = mysql_fetch_assoc($result))
{?>
<option value="<?php echo $s['name']; ?>"><?php echo $s["name"]; ?></option>
<?php } ?>
</select>
</td>
<td width="166"><div align="center">
<select id="grade_opt" name="grad[]">
<option value="">- Select grade -</option>
<?php
$result2 = mysql_query("SELECT * FROM spm_grade");
while($g = mysql_fetch_assoc($result2))
{?>
<option value="<?php echo $g['grade']; ?>"><?php echo $g["grade"]; ?></option>
<?php } ?>
</select>
</div>
</td>
</tr>
<?php }?>
<tr>
<td colspan="3">
<div align="center">
<input type="submit" value="Submit">
</div>
</td>
</tr>
</table>
</form>
如果:
Dropdown lists
然后会出现一个消息框,告诉我有重复值不能相同。任何人都可以为我分享想法?感谢。
答案 0 :(得分:1)
我认为'id应该不一样,但'name'可以相同,然后你可以用getElementById检查。您应该能够在'id'之后添加$ i来对元素进行舍入
id="subject_opt<?php echo $i; ?>"
以下为您的示例:
<script>
function checkSubjectAndGrade(num){
for(i=0;i<2;i++){
if(i!=num && document.getElementById("subject_opt"+num).value === document.getElementById("subject_opt"+i).value){
alert("dropdown lists' value are same");
}
}
}
</script>
<form action="checkresult2.php">
<table class="p1" bgcolor="#FFFFCC" bordercolor="#000000" align="center" width="771" border="2">
<tr>
<td><div align="center"><strong>No.</strong></div></td>
<td><div align="center"><strong>Subject Name</strong></div></td>
<td><div align="center"><strong>Grade</strong></div></td>
</tr>
<tr>
<td width="42"><div align="center">1</div></td>
<td width="539">
<select id="subject_opt0" name="subj[]" onChange="checkSubjectAndGrade(0)">
<option value="">--- Please choose a subject ---</option>
<option value="aaa">English</option>
<option value="bbb">Math</option>
</select>
</td>
<td width="166"><div align="center">
<select id="grade_opt0" name="grad[]">
<option value="">- Select grade -</option>
<option value="aaa">A</option>
<option value="bbb">B</option>
</select>
</td>
</tr>
<tr>
<td width="42"><div align="center">2</div></td>
<td width="539">
<select id="subject_opt1" name="subj[]" onChange="checkSubjectAndGrade(1)">
<option value="">--- Please choose a subject ---</option>
<option value="aaa">English</option>
<option value="bbb">Math</option>
</select>
</td>
<td width="166"><div align="center">
<select id="grade_opt1" name="grad[]">
<option value="">- Select grade -</option>
<option value="aaa">A</option>
<option value="bbb">B</option>
</select>
</td>
</tr>
<tr>
<td colspan="3">
<div align="center">
<input type="submit" value="Submit">
</div>
</td>
</tr>
</table>
</form>
答案 1 :(得分:0)
<script>
function validate()
{
var dropdown1 = document.getElementById("grade_opt");
var dropdown2 = document.getElementById("subject_opt");
if(dropdown1.value == dropdown2.value){
alert("Cannot Have duplicate values");
}
}
</script>
然后将onchange属性添加到每个选择onchange="validate()"
答案 2 :(得分:0)
如果您在代码
下使用jqueryfunction validateDropdowns(){
var selectBox1 = $("#subject_opt option:selected").val();
var selectBox2 = $("#grade_opt option:selected").val();
if((selectBox1 != "" && selectBox2 !="") &&(selectBox1 == selectBox2)){
alert("duplicate values are not accepted");
}
}
在每个下拉列表中调用validateDropdowns()
函数