我做了一个javascript问题的简短演示。单击“提交”按钮时,会弹出警告,通知用户不允许空白值,这很好。但随后页面提交,这很糟糕。
似乎这种行为只发生在隐藏的字段上。
(如果在name字段中输入任何值,则更清楚。单击Submit。我知道页面提交,因为Name中的值清除了。)
有人能看到这里有什么问题吗?
<html>
<body>
<form action="" method="post" name="form" onsubmit='return validate()'>
Name: <input type="text" name="name" id="name">
<br><br>Signature: Hidden <input type="hidden" name="poa_esign_signature" id="poa_esign_signature">
<br><br><button type="submit">Sign</button>
</form>
<script type="text/javascript">
function validate() {
var element=document.getElementById('poa_esign_signature');
if (element.value=='') {
alert('Signature may not be blank.');
element.focus();
return false;
}
}
</script>
</body>
</html>
答案 0 :(得分:2)
检查您的控制台。我打赌element.focus()
失败了,因为它是一个隐藏的输入。似乎很奇怪,专注于一个隐藏的元素。
答案 1 :(得分:0)
尝试使用<input type="submit">
而不是<button type="submit">
。我不确定它是否会有所作为,但它可能就是它。
答案 2 :(得分:0)
试试这个:
<html>
<body>
<script type="text/javascript">
window.onload = function()
{
var _form = document.getElementById("_form");
_form.addEventListener("submit", validate, false);
}
function validate(ev)
{
var element=document.getElementById('poa_esign_signature');
if (element.value=='')
{
alert('Signature may not be blank.');
element.focus();
ev.preventDefault();
}
}
</script>
<form action="www.google.it" method="post" name="form" id="_form">
Name: <input type="text" name="name" id="name">
<br><br>Signature: Hidden <input type="hidden" name="poa_esign_signature" id="poa_esign_signature">
<br><br><button type="submit">Sign</button>
</form>
</body>
</html>
再见
答案 3 :(得分:-1)
onsubmit='return validate()'
应该是
onsubmit='validate()'