0

私の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">
4

2 に答える 2

1

このフィドルをチェックして、実際の動作を確認してくださいhttp://jsfiddle.net/thefourtheye/p9pDu/1/

コードには 4 つの変更が必要です

  1. フォームの定義を次のように変更します

    <form id="formId" name="myForm" action="mailto:" method="post">
    
  2. validateForm関数にはパラメーターは必要ありません。

  3. 使うときは使わdocument.getElementByIdない#。だから、そうあるべきです

    document.getElementById('formId')
    
  4. validateFormフォームが送信されたときに が呼び出されるようにするために必要なのは、この行だけです。

    $('#formId').on('submit', validateForm);
    
于 2013-10-14T03:51:19.333 に答える