为什么document.getElementById不起作用,我需要使用document.forms?

时间:2014-04-05 23:06:20

标签: javascript forms getelementbyid

我有这个简单的形式,我想检查文本输入是否为空。

所以这就是我所做的:

这是表格:

<form onsubmit='return validar()' name="miForm" action="" method="POST">
<input id='tMonth' value='<?php echo $tMonth;?>' name='tmes' type='text'>  
...

这里是验证码,插在标签后面,当然是标签之间:

function validar()
{
    mostrarValidacion=document.getElementById('mostrarValidacion');
    error=false;
    mensaje='';   
    var tMonth=document.getElementById('tmes');
if (!tMonth)  {
  mensaje += 'Debe completar todos los campos<br>';
  error=true;
  }
mostrarValidacion.innerHTML=mensaje; 
  if (error==true) {
      //con un return false nunca manda al servidor nada, no hace nada.
      return false;
  } else {
      return true;
  }  
}
</script>

现在代码根本不起作用。它只在我替换这一行时才起作用:

var tMonth=document.getElementById('tmes');

对于这一行:

var tMonth=document.forms["miForm"]["tmes"].value

那么为什么不使用.getElementById?

1 个答案:

答案 0 :(得分:3)

您正在使用ID&#39; tMonth&#39;

<input id='tMonth' value='<?php echo $tMonth;?>' name='tmes' type='text'>

但你正试图将其作为tmes

var tMonth=document.getElementById('tmes');

将上述行更改为

var tMonth=document.getElementById('tMonth');