在这段代码中,我在哪里犯了Javascript错误?

时间:2011-11-10 15:02:40

标签: javascript

我做了一个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>

4 个答案:

答案 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()'