ENCTYPE MULTIPART表单数据

时间:2015-11-25 09:59:50

标签: php jquery html

我想知道是否有可能在我解释的表单的enctype上有一个'switch system':我有一个没有必需$ _Files的表单..如果我有一个上传器文件,一切正常,但如果我没有,我收到一封空邮件,但标题很好。我认为这是因为enctype,我不知道如何采取行动。

1 个答案:

答案 0 :(得分:0)

对于我们每天的UI问题,jQuery可以是一个方便的解决方案...... 我准备了这个简单的html表单:

<form id="myform" method="POST" action="myActionFile.php">
    <div>First Name <span>*</span><input class="form-control" type="text" id="firstname" name="firstname"></div>
        <div>Last Name <span>*</span><input class="form-control" type="text" id="lastname" name="lastname"></div>
    <div>Your File: <input class="form-control" type="file" id="myfile" name="myfile"></div>
    <div><button class="btn pull-right" id="submit">SEND</button></div>
</form>

正如您在&#34;表格中所看到的那样#34;标记&#39; enctype&#39;不包括在内。这将由javascript(实际上是jQuery)来处理:

$('#submit').on('click', function(e){
    e.preventDefault();
    if($('#firstname').val().length < 1){$('#firstname').css('background-color', '#ffc9c9').prop('placeholder', 'Required');}
    if($('#lastname').val().length < 1){$('#lastname').css('background-color', '#ffc9c9').prop('placeholder', 'Required');}else{
        var fileData = $('#myfile').val();
        if(fileData != ""){ //if file has been selected:
            $('#myform').prop('enctype', 'multipart/form-data').submit();
        }else{ //if NO file selected:
            $('#myform').prop('enctype', 'text/plain').submit();
        }
    }
});

以上代码

  1. 检查必填字段(名字,姓氏)是否为空白

  2. 检查&#34;文件&#34;输入 - 如果它是空白或不是 - 并为表格指定正确的&#34; enctype&#34;

  3. 最后,提交表格

  4. 这是小提琴:http://jsfiddle.net/8y2y5z4s/