我一直面临着类似的问题,其中字段是必需的,但它们的值是从另一个表单中获取的。我决定做的是以下内容:
- 为所有需要但不需要手动输入的输入分配一个类
- 创建一个自动禁用所有用户从键盘或上下文菜单输入的函数
这是我的解决方案:
HTML FILE WITH FORM
<head>
<script src='file1.js'></script>
</head>
<body>
<form method='post'>
<input class='RequiredNoManual'>
<input type='submit'>
</form>
</body>
</html>
JS文件
window.addEventListener('load', configureNoManualInputFields);
function configureNoManualInputFields()
{
var elements = document.getElementsByClassName('RequiredNoManual');
for(var i =0; i<elements.length; i++)
{
elements[i].oncut = function(){event.preventDefault();};
elements[i].oncopy = function(){event.preventDefault();};
elements[i].onkeydown = function(){event.preventDefault();};
elements[i].onkeypress = function(){event.preventDefault();};
elements[i].setAttribute('required', 'required');
}
}