提问者:小点点

提交包含文本输入和文件输入的表单


我正在使用Jquery和Ajax向php页面提交一个包含文本输入文件输入的表单,但是在提交之前,我希望在提交之前对文本输入进行验证。

下面是表格页

            <form id="registrationForm"  method="POST"  name="registrationForm" enctype="multipart/form-data">

                <input type="text"  name="firstName" id="firstName" />

                <input type="file" name="file" id="file" />

                <button type="submit"> UPLOAD</button>

            </form>

还有Javascript页面

 $('#registrationForm').validate({
        rules: {
            firstName:{
                required: true
            }
        },
        message:{
            firstName: {
                required: "Please Enter Name"
            }
        },


    submitHandler : function(){

      //grab all form data  
      var formData = new FormData(this);

      $.ajax({
        url: 'submitPage.php',
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
          success: function(data) {  
            $('#message').html(data);  
            $('#message').html(data).hide().fadeIn(1500,function(){$('#message')});
            } 
        });

    }
    });

和PHP Page这是接收页面

        <?php
            $firstName=$_POST['firstName'];
            $file=$_FILES['file']['name'];

            echo $firstName;
            echo $file;

         ?>

这将在php接收页面返回null。我真的希望有人能帮我。谢谢。


共1个答案

匿名用户

$('#registrationForm').validate({
        rules: {
            firstName:{
                required: true
            }
        },
        message:{
            firstName: {
                required: "Please Enter Name"
            }
        },


    submitHandler : function(){

      //grab all form data  
      var formData = new FormData(document.querySelector("form"));

      $.ajax({
        url: 'submitPage.php',
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
          success: function(data) {  
            $('#message').html(data);  
            $('#message').html(data).hide().fadeIn(1500,function(){$('#message')});
            } 
        });

    }
    });