简单的JavaScript验证工作不

问题描述:

我努力做到以下几点:简单的JavaScript验证工作不

HTML代码

<body> 
    <form name="myform"> 
    <table> 
     <tr> 
      <td>First Name:</td> 
      <td><input type="text" id="first_name"></td> 
      <td><p id="demo"></p></td> 
     </tr> 
     <tr> 
      <td><input type="submit" id="Submit" onclick="validate()"></td> 
     </tr> 
    </form></body> 

JavaScript代码

<script> 
    function validate(){ 

     var fname = document.getElementById("first_name").value; 
     if(fname.length>0){ 
      document.getElementById("demo").value=""; 
     } 
     else{ 
      document.getElementById("demo").value="Name field empty"; 
     } 
    } 
    </script> 

当我点击与空的名字字段中的按钮,它应将“名称字段为空”分配给它,但即使脚本的控制权在那里,但它不会打印标签中的任何内容。

+1

您需要使用'.innerHTML'而不是'.value'段落标记具有内部内容,而不是值。您可能希望添加'event.preventDefault()'来停止提交 – NewToJS

+0

的表单...并且您需要防止在验证失败时提交表单。 – CBroe

+0

@NewToJS:感谢它的工作。 – Ven

我认为你应该代替试试这个:d

<script> 
    function validate(){ 

     var fname = document.getElementById("first_name").value; 
     if(fname!=""){ 
      document.getElementById("demo").innerHTML=""; 
     } 
     else{ 
      document.getElementById("demo").innerHTML="Name field empty"; 
     } 
    } 
    </script> 

你想检查该字段为空或不那么在这种情况下FNAME足以一直使用。如果变量fname(它是first_name字段的值)不为空,那么它继续执行将.innerHTML将“demo”的HTML内容设置为“”的语句。您使用的.value与与演示相关的显示HTML内容无关:D。我希望我的英语对你理解这一点并不难。

+1

**你应该试试这个**并没有解释这个问题,这是一个不好的答案。 – NewToJS

+0

Ouch:S有点新,所以,我会尽快解决这个问题 –

+0

毫无意义地修复它,这个问题已经在OP的问题的意见中解决了。 – NewToJS