JS函数验证空输入字段不起作用

时间:2013-10-14 03:03:33

标签: javascript html css

我似乎无法弄清楚我的JS有什么问题。 我需要的只是功能validateForm来检查表单上的空字段id formId 我从来没有在浏览器上收到警报。

这是我的JS:

<script>
    $(document).ready(function(){
        window.validateForm = validateForm;
        function validateForm(formId){
        var form=document.getElementById('#formId');
        for(i=0; i<form.childNodes.length; i++)
            if(form.childNodes[i].tagName!='INPUT'||
               typeof form.childNodes[i].value=="undefined")
                continue;
            else{
                var x=form.childNodes[i].value;
                if(x==null||x==""){
                    alert("please fill out all fields");
                    return false;
                }
            }
    }
 </script>

这是html:

  <form id="formId" name="myForm" action="mailto:" onsubmit="return validateForm()" method="post">
  first field: <input type="text" name="first"></br>
  second field: <input type="text" name="second"></br>
  third field: <input type="text" name="third"></br>
  fourth field: <input type="text" name="fourth"></br>
  <input type="submit" value="Submit">

2 个答案:

答案 0 :(得分:1)

请检查这个小提琴,看看它在行动http://jsfiddle.net/thefourtheye/p9pDu/1/

您的代码需要进行四项更改

  1. 像这样更改表单的定义

    <form id="formId" name="myForm" action="mailto:" method="post">
    
  2. 您的validateForm函数不需要任何参数。

  3. 使用document.getElementById时请勿使用#。所以,它应该是

    document.getElementById('formId')
    
  4. 您只需要这一行就可以确保在提交表单时调用validateForm

    $('#formId').on('submit', validateForm);
    

答案 1 :(得分:0)

validateForm函数在文档就绪回调中定义(在回调函数范围内)。这在全球范围内无法访问。但是您正在尝试访问onsubmit事件中的函数。

在回调函数中的函数定义之后执行此操作,以使函数全局可用:

window.validateForm = validateForm;