有一个 PHP 生成的 HTML 4 过渡页面,用于编辑来自单个记录的数据库中的数据。用户有两个选择:存储更改或删除记录。我使用带有控件的表单(其中一些是隐藏的):
<form method="post" action="object_mod.php"><!-- this is another file -->
<!-- inputs follow -->
因为我想处理两个动作,即。</FORM>
删除或保存记录我在表单上的标记之前放置了两个提交按钮:
<input type="submit" id="btnSubmit" value="Save">
<input type="submit" id="btnDelete" value="Delete">
</form>
因为用户应该确认删除,所以我添加了以下onclick
事件:
<input type="submit" id="btnDelete" value="Delete" onclick="javascript:deleteRecordConfirm();">
(我也试过没有javascript:
and onclick="javascript:deleteRecordConfirm(); return true;"
),但它没有提交表单。
JS函数是
function deleteRecordConfirm(){
if(confirm('Are you sure to delete?')){
document.getElementById("field_action").value=-1;
//document.forms[0].submit();
return true;
}
}
这field_action
设置为 -1,所以我在 object_mod.php 中知道我想删除记录而不是保存它。
问题来了,为什么这个表格在删除时不提交?
我认为,如果用户禁用了 Javascript 以提交表单,即使没有确认也是很好的,这就是我<INPUT TYPE="submit">
用于删除的原因。这是个好主意吗?我正在考虑给两个独立的表单(实际上删除应该只有一个带有记录 id 的隐藏字段)和它们自己的提交按钮,一个用于删除,另一个用于保存。
事实上,该页面可以在某种 Intranet 中运行,我信任的用户和我不怕黑客攻击或其他什么的,但也欢迎任何安全说明。
(我在 Firefox 19.0 上对其进行了测试,Javascript 控制台没有显示任何错误,w3c 验证器说它是一个有效页面)。