这是我的输入字段禁用代码
<input type="text" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date" disabled />
如何防止此字段中的检查元素选项?
答案 0 :(得分:4)
不行。
代码检查器旨在调试HTML和Javascript。它们将始终显示网页的实时DOM
对象。这意味着它会显示您在页面上看到的所有内容的HTML代码,即使它们是由Javascript生成的。
答案 1 :(得分:1)
如其他答案中所述,无法完全阻止它,一旦它进入浏览器,用户就可以对其进行操作。 与其思考如何防止在输入中使用检查元素或开发工具,不如考虑自己的目标,并希望达到什么目的?
如果要防止更改输入值,请使用服务器端生成的某些哈希值,其中包括来自staffid
字段的值,并将其存储在隐藏的输入中。
当用户提交表单时,只需使用staffid
值和输入中的哈希值重新生成哈希即可。如果它们不匹配,则用户已手动操作了staffid
输入。
示例:
<input type="text" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date" disabled />
<input type="hidden" name="hash" value="<?php echo md5($employeeworks[0]['employeeCode'] . 'some salt to avoid user just generating hash with md5 using value only'); ?> />
然后提交:
$staffid = filter_input(INPUT_POST, 'staffid');
$hash_input = filter_input(INPUT_POST,'hash');
$hash_check = md5($staffid . 'some salt to avoid user just generating hash with md5 using value only');
if($hash_input !== $hash_check){
//looks like the user manipulated staffid value, throw a validation error
}
答案 2 :(得分:0)
尝试一下
<input type="text" oncontextmenu="return false;" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date" disabled />
答案 3 :(得分:0)
您可以通过右键单击来阻止检查。
这种防止右键单击的方法
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
如果用户按F12并单击箭头按钮进行检查,则仍然可以。 您也可以通过此代码阻止F12
document.onkeydown = function(e) {
if(event.keyCode == 123) { //F12 keycode is 123
return false;
}
}
答案 4 :(得分:0)
实际上,您不能限制用户检查任何特定元素的检查元素,但可以完全禁用。检查以下代码,该代码将不允许用户打开调试器,甚至无法打开页面源代码。
document.onkeydown = function(e) {
if(e.keyCode == 123) {
e.preventDefault();
return false;
}
if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
e.preventDefault();
return false;
}
if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
e.preventDefault();
return false;
}
if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
e.preventDefault();
return false;
}
if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
e.preventDefault();
return false;
}
}
但是此代码也缺少一些内容。希望对您有帮助。