Javascript验证(点击提交后输入未显示)

时间:2017-02-14 03:33:48

标签: javascript html validation submit innerhtml

这是一个简单的代码,我不知道我哪里出错了。如果没有输入名字,名称验证有效,但输入有效名称时不会显示结果。

这是我的代码:

我只是html和javascript的新手,希望我能从这里得到帮助。谢谢

  function checkname(form) {
    var eobj = document.getElementById('MITname');
    var jname = form.Name.value;
    var error = false;

    eobj.innerHTML = '';

    if (jname == '') {
      error = "Name is required!";
      var error2 = error.fontcolor("red");

    }
    if (error) {
      if (hasFocus == false) {
        form.Name.focus();
        hasFocus = true;
      }
      eobj.innerHTML = error2;
      return false;
    }
    return true;
  }

  function showinput() {
    document.getElementById('namedisplay').innerHTML = document.getElementById('MITname').value;
  }


  function validate() {
    hasFocus = false;
    var form = document.forms['form'];
    var ary = [checkname];
    var rtn = true;
    var z0 = 0;
    for (var z0 = 0; z0 < ary.length; z0++) {
      if (!ary[z0](form)) {
        rtn = false;
      }
    }
    return rtn;
  }
<form action="" name="form" onsubmit="return validate()">
  <tr>
    <td align="right">Name:<font color="red">*</font>
    </td>
    <td>
      <input type="text" name="Name" /> <span id="MITname"> </span> 
    </td>
  </tr>
  <br/>
  <input type="submit" value="Submit" onclick="showinput()" />
  <br/>
  <label>Your input:</label>
  <p><span id="namedisplay"></span>
  </p>
</form>

3 个答案:

答案 0 :(得分:0)

这里几个问题。 (另外,欢迎使用Web开发!)

首先,您实际上从未创建变量hasFocus。因此,您永远不会真正检查它是否真实。

其次,您创建error2的位置意味着它只能在创建它的if()块中访问。因此,当您尝试访问它时,在以下if(error)块中,它将返回undefined

第三,当您创建error时,您将值设置为false,这表示布尔类型,但稍后将其值设置为String,这绝对不是布尔值。

第四,var ary = [checkname];行让我感到困惑。我知道你正在尝试将名称(从输入?)转换为数组,但这不是这样做的方法。您可以使用string.charAt(index)访问名称的每个字符,因此创建数组并非真正必要。

第五,您的validate()功能整体非常令人困惑。我不知道你正在尝试做什么。看起来你的教学资源可能会误导你,或者你并没有密切关注。

我可以继续,但是这些问题(以及其他问题)实际上很难找到确切的问题,而不会过多地挖掘它。我不想为你写这个,所以我的建议是重新开始,也许结帐一些教程,也许是从不同的来源。 (不同的youtube频道等)

答案 1 :(得分:0)

我的问题是验证。如果我输入一个空白名称,名称的文本框旁边会出现一条错误消息,表示要输入有效名称。

<!DOCTYPE html>
<html>
<head>
    <title>JAVASCRIPT FORM VALIDATION</title>
	
    <script type="text/JavaScript">
        function showMessage()
		{
            var Name = document.getElementById("Name").value;
            displayname.innerHTML= Name;
			
			var Email = document.getElementById("Email").value;
			displayemail.innerHTML= Email;
			
			var Website = document.getElementById("Website").value;
			displaywebsite.innerHTML= Website;
			
			var Comment = document.getElementById("Comment").value;
			displaycomment.innerHTML= Comment;
			
			var nameerror='';
			var emailerror='';
			var websiteerror='';
			var commenterror='';
			
				if (displayname.innerHTML=='')
				{
				nameerror = 'Please enter a valid name';
				return false;
				}
				return true;
        }
    </script>
	
</head>

<body>

Name: <input type="text" id = "Name"> <span id = "nameerror"> </span>
<br></br>
Email: <input type="text" id = "Email">
<br></br>
Website: <input type="text" id = "Website">
<br></br>
Comnent: <textarea cols="35" rows="7" id="Comment"> </textarea>
<br></br>

<input type="submit" onclick="showMessage()" value="submit" />

			<p>Name: <span id = "displayname"></span> </p>
			<p>Email: <span id = "displayemail"></span> </p>
			<p>Website: <span id = "displaywebsite"></span> </p>
			<p>Comment: <span id = "displaycomment"></span> </p>


</body>
</html>

答案 2 :(得分:0)

<form action="" name="form" onsubmit="return validate()">
  <tr>
    <td align="right">Name:<font color="red">*</font>
    </td>
    <td>
      <input type="text" name="Name" /> <span id="MITname"> </span> 
    </td>
  </tr>
  <br/>
  <input type="button" value="Submit" onclick="showinput()" />
  <br/>
  <label>Your input:</label>
  <p><span id="namedisplay"></span>
  </p>
</form>

只需删除代码中的type ='submit',它就会提交你的页面,一旦你点击提交数据就会更改为POST,所以使用按钮作为类型