2013-05-21 47 views
0

这是我第一次尝试javascript,并且无法正常工作。我有一个文本框和提交按钮的PHP文件。点击提交按钮后,我想让javascript进行验证以确保文本框不为空。请参阅下面的代码。运行时,单击提交按钮时不会发生任何反应。在一个PHP文件中使用javascript进行表单验证

<html><head><script type="text/javascript"> 
function formValidator() {   
    var client_name = document.getElementByID('client_name');   
    if(notEmpty(client_name, "Client Name Blank")){ 
      return True;  
    } 
    return False;   
} 

function notEmpty(elem, helperMSG) { 
    if(elem.length == 0) { 
     alert(helperMSG); 
     elem.focus(); 
     return False; 
     } 
    return True; 
    } 
</script></head> 

<?php 
    echo '<body><form onsumbit="return formValidator()" method="post"> 
     <table border="1" cellspacing="0" cellpadding="0"><tr><td colspan="2"> 
     <h1>Add Account</h1></td></tr> 
     <tr> 
     <td>Client Name: <font size="1">(required)</font></td> 
     <td><input type="text" id="client_name" name="client_name" size="35"/></td></tr> 
     </table> 
     <input type="submit" name="submit_account" value="Add Account"/> 
     </form></body></html>'; 
?> 
+0

你不是应该关闭''后'>' –

+0

@harsha的''标签打开,在'echo'关闭?语句(''结束标记也在那里),所以当我发送给客户端时,它将最终成为有效的HTML,据我所知。为什么它必须被“回声”而不是简单的标记,我不知道。 – ajp15243

+0

@ ajp15243:对不起,我的意思是'' –

回答

1
  1. JavaScript是区分大小写的。没有定义TrueFalse(你的意思是truefalse),所以在遇到它们时,JavaScript引擎会抛出异常并恢复正常的表单提交。
  2. 您正在测试HTMLInputElementlength属性(除非您另行定义)将始终为undefined。您要测试的长度。 elem.value.length
+0

+1很好的解释。 –

+0

和双重检查是多余的... –

0

几个问题:

1)真假,不会被识别为JavaScript是区分大小写的。 尝试使用true和false。

2)你还需要使用elem.value.length(或只是elem.value)

所以更改

elem.length

到 elem.value.length。

3)不需要两次检查真/假,一次就足够了。

html><head><script type="text/javascript"> 
function formValidator() {   
    var client_name = document.getElementByID('client_name');   
    return notEmpty(client_name, "Client Name Blank"); // no need for true false 
} 

function notEmpty(elem, helperMSG) { 
    if(elem.value.length == 0) { ///changed to use value. 
     alert(helperMSG); 
     elem.focus(); 
     return false; //change to lowercase false 
    } 
    return true; //change to lowercase true. 
    } 
</script></head> 
+0

为什么投票下降??? –

+0

我认为-1是你答案的第一稿。 – ajp15243

+0

你给我的-1? –

0

使用此: -

<script type="text/javascript"> 
    function formValidator() {   
     var client_name = document.getElementByID('client_name');   
     if(notEmpty(client_name, "Client Name Blank")){ 
       return true;  // Changed True to true 
     } 
     return false;   // Changed False to false 
    } 

    function notEmpty(elem, helperMSG) { 
     if(elem.value.length == 0) // checking length of an element's value 
{ 
      alert(helperMSG); 
      elem.focus(); 
      return false; // Changed False to false 
      } 
     return true; // Changed True to true 
     } 
    </script> 
+1

你应该解释你改变了什么以及需要改变的原因,而不是仅仅发布代码并让其他人寻找你所做的改变。 – ajp15243

+0

我按照你所说的完成了。 :) –

+0

为什么downvoted ?? –