我在PHP中创建了一个简单的下拉菜单:
<td> Privilege: </td>
<td><select name="privilege">
<?php
$position_list = array(
1 => "Chair",
2 => "SACA",
5 => "Faculty",
0 => "Disable User",
);
foreach ($position_list as $priv_id=>$position) {
echo "<option value= \"{$priv_id}\"";
if ($priv_id == $sel_user['privilege']) {
echo " selected";
}
echo ">{$position}</option>";
}
?></td></select>
</tr>
</tr>
我想知道是否可以包含一些Javascript。因此,当用户选择“禁用用户”时,会显示一条消息“您确定要禁用此用户吗?”弹出。 提前感谢任何建议!
答案 0 :(得分:1)
这里的问题不是显示警报 - 这很简单 - 但是跟踪select元素曾经拥有的值。毕竟,如果用户单击“否”并且用户仍被禁用,则没有多大用处。
为了做到这一点,我建议最简单的方法是使用隐藏的输入元素来存储原始值。然后,您可以参考以正确设置选项。
像这样的东西(这里纠正了HTML结构,请注意;-)):
<td>Privilege:</td>
<td>
<!-- note the onchange event -->
<select name="privilege" onchange="checkDisable(this);">
<?php
// Define the options
$position_list = array(
1 => "Chair",
2 => "SACA",
5 => "Faculty",
0 => "Disable User",
);
// Create the list
foreach ($position_list as $priv_id=>$position) {
echo "<option value= \"{$priv_id}\"";
if ($priv_id == $sel_user['privilege']) {
echo " selected=\"selected\"";
}
echo ">{$position}</option>";
}
?></select>
<input type="hidden" id="privilege_old_val" value="<?php echo $sel_user['privilege']; ?>" />
<script type="text/javascript">
function checkDisable(element) {
// Firstly check if the user selected the disable option, then get them to confirm it
if (element.options[element.selectedIndex].value == 0 && !confirm("Are you sure you want to disable this user?")) {
// If they didn't confirm it, loop the options...
for (var i = 0; i < element.options.length; i++) {
// Find the option with the old value...
if (element.options[i].value == document.getElementById('privilege_old_val').value) {
// ...and set the select back to that option
element.selectedIndex = i;
} // if
} // for
} // if
// Update the input that tracks the old value with the current value
document.getElementById('privilege_old_val').value = element.options[element.selectedIndex].value;
}
</script>
</td>
答案 1 :(得分:0)
是的,您可以使用onchange
事件:
<select name="privilege" onchange="if(this.options[this.selectedIndex].value === 0)confirm('Are you sure you want to disable this user?')">
答案 2 :(得分:0)
这个JavaScript应该为你做到:
<select name="Select1" onchange="if(this.value==0) confirm('are you sure you want to disable this user?')">
<option value="1">Chair</option>
<option value="2">SACA</option>
<option value="5">Faculty</option>
<option value="0">Disable user</option>
</select>