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

Posted

技术标签:

【中文标题】提交包含文本输入和文件输入的表单【英文标题】:Submit form containing text input and file input 【发布时间】:2017-02-24 19:13:30 【问题描述】:

我正在使用 Jquery 和 Ajax 向 php 页面提交一个包含 text inputfile input 的表单,但在提交之前,我想在提交之前验证文本输入。

下面是表单页面

            <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页面

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

            echo $firstName;
            echo $file;

         ?>

这会在 php 接收页面上返回 null。我真的希望有人可以帮助我。谢谢。

【问题讨论】:

完整答案在以下链接:***.com/questions/20795449/… 【参考方案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'));
             
        );

    
    );

【讨论】:

以上是关于提交包含文本输入和文件输入的表单的主要内容,如果未能解决你的问题,请参考以下文章

HTML文本输入事件

HTML 表单 - 使用添加 Enter (CR) 后缀的条码扫描器防止表单提交输入

发布表单时,符号“+”在输入文本中消失

HTML5:如何在任何文本输入处按 ENTER 后提交表单?

如何接收隐藏文本框的输入并提交表单?

使用 jquery 从视图提交包含输入和 List<Model> 的表单到操作