0

这是我第一次尝试 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>';
?>
4

3 回答 3

1
  1. JavaScript 区分大小写。TrueandFalse没有定义(你的意思是trueand false)所以,在遇到它们时,JavaScript 引擎将抛出异常,并且将恢复正常的表单提交。
  2. 您正在测试 which 的length属性HTMLInputElement(除非您另有定义)将始终为undefined. 您要测试value的长度。elem.value.length.
于 2013-05-21T16:44:49.667 回答
0

几个问题:

1) True 和 False,不被识别,因为 JavaScript 区分大小写。尝试使用真假。

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

所以改变

元素长度

到 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>
于 2013-05-21T16:45:13.550 回答
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>
于 2013-05-21T16:45:54.970 回答