Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证带dropzone的组合范式_Javascript_Forms_Jquery Validate_Dropzone.js - Fatal编程技术网

Javascript 验证带dropzone的组合范式

Javascript 验证带dropzone的组合范式,javascript,forms,jquery-validate,dropzone.js,Javascript,Forms,Jquery Validate,Dropzone.js,在使用文件上载提交表单之前,如何验证输入字段(电子邮件、用户名)? 是否可以在dropzone中集成jquery验证插件 <form id="my-awesome-dropzone" class="dropzone"> <div class="dropzone-previews"></div> <!-- Now setup your input fields --> <input type="email" id="email" n

在使用文件上载提交表单之前,如何验证输入字段(电子邮件、用户名)? 是否可以在dropzone中集成jquery验证插件

<form id="my-awesome-dropzone" class="dropzone">
 <div class="dropzone-previews"></div>

  <!-- Now setup your input fields -->
  <input type="email" id="email" name="email" />
  <input type="text" id="username" name="usename" />

  <button type="submit">Submit data and files!</button>
</form>
您的HTML:

<form id="my-awesome-dropzone" class="dropzone">
    <div class="dropzone-previews"></div>

    <!-- Now setup your input fields -->
    <input type="email" id="email" name="email" />
    <input type="text" id="username" name="usename" />

    <button type="submit">Submit data and files!</button>
</form>

演示:

对我来说,以上都不可行,所以我提供了以下内容:



环境名称
⇢ 这是我的义务。
⇢ Le fichier doit avoir联合国最大数据传输速率为10 Mbs
⇢ 收费格式:png、jpg、gif和pdf
特使
Dropzone.options.myDropzone={
url:“upload.php”,
paramName:“arquivo”,//与upload.php中使用的名称相同
自动处理队列:false,
uploadMultiple:false,
并行上传:5,
最大文件数:5,
最大文件大小:10,
acceptedFiles:'image/*',
addRemoveLinks:是的,
init:function()
{
dzClosure=this;//确保在下面的函数中理解“this”。
//要使Dropzone处理队列(而不是默认的表单行为),请执行以下操作:
document.getElementById(“全部提交”).addEventListener(“单击”,函数(e)
{
//确保表单没有实际发送。
e、 预防默认值();
e、 停止传播();
if(document.getElementById(“ambiance”).value=''document.getElementById(“resp1”).innerHTML=“⇡;Champ obligatoire!”;
processQueue();
});
//将所有表单数据与文件一起发送:
this.on(“发送”,函数(文件、xhr、formData)
{
formData.append(“quem”,$(“#quem”).val();
append(“id_cliente_poder”,$(“#id_cliente_poder”).val();
});
this.on('success',函数(文件,resp){
document.getElementById('form-sucesso').innerHTML=“☺;存档téléchargéavec success!”;
});
}}
//PHP

$normalizeChars=数组(
‘Š’=>'S’、‘š’=>'S’、‘Ð’=>'Dj’、‘Ž’=>'Z’、‘À’=>'A’、‘Á’=>'A’、‘Ã’=>'A’、‘Ä’=>'A’,
Å'=>'A',Æ'=>'A',È'=>'C',È'=>'E',Ê'=>'E',Ë'=>'E',Ì'=>'I',Í'=>'I',Î'=>'I',
‘Ï’=>'I’、‘Ï’=>'N’、‘Ò’=>'O’、‘Ó’=>'O’、‘Õ’=>'O’、‘Õ’=>'O’、‘Ø’=>'O’、‘Ù’=>'U’、‘Õ’=>'U’,
‘Û’=>‘U’、‘Ü’=>‘U’、‘Ý’=>‘Y’、‘Ý’=>‘B’、‘ß’=>‘Ss’、‘a’、‘á’=>‘a’、‘ã’=>‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘a’、‘,
‘å’=>'a’、‘æ’=>'a’、‘ç’=>'c’、‘è’=>'e’、‘ê’=>'e’、‘ì’=>'i’、‘î’=>'i’、‘î’=>'e’、‘ê’=>'e’、‘ì’=>'e’、‘ì’=>'i’、‘i’,
‘ï’=>‘i’、‘ð’=>‘o’、‘ñ’=>‘n’、‘ò’=>‘o’、‘ô’=>‘o’、‘õ’=>‘o’、‘ù’=>‘o’、‘ù’=>‘u’,
‘ú’=>‘u’、‘ý’=>‘u’、‘ý’=>‘y’、‘ý’=>‘y’、‘þ’=>‘b’、‘ÿ’=>‘y’、‘ƒ’=>‘f’,
‘ă’=>‘a’、‘î’=>‘i’、‘a’、‘ș’=>‘s’、‘ț’=>‘t’、‘Ă’=>‘a’、‘Î’=>‘i’、‘a’、‘Ș’=>‘s’、‘Ț’=>‘t’,
“'=>”、“=>”、“'=>”、“''=>”、“'=>”、“'=>”、“-”、“''=>”、“'=>”、”、“:'=>”、“'=>”、“=>”,
‘ê’、‘à’、‘é’、‘e’、‘ô’、‘e’、‘a’、‘e’、‘a’、‘a’、‘a’、‘e’、‘e’、‘e’、‘o’、‘e’、‘e’、‘a’、‘a’、‘a’、‘e’,
‘ã’=>‘a’,);
$arquivo='';
如果(isset($\u FILES['arquivo']['tmp\u name']))$arquivo=$\u FILES['arquivo']['tmp\u name'];
如果(!空($arquivo)){
$err=0;
$arquivo_name=strtr($_文件['arquivo']['name'],$normalizeChars);
$arquivo_size=$_文件['arquivo']['size'];
$arquivo_type=$_文件['arquivo']['type'];
如果($arquivo_尺寸>10240000){
$alert=“Votre archive ne peut pas dépasser 10 MBs”;
$err++;
}
如果($err==0){
$id_客户='';
如果($_会话['poder']==1){
$id_cliente=$_POST['id_cliente_poder'];
$quem_vai='3dplan';
}
否则{
$id_cliente=$_POST['id_cliente_poder'];
如果($_POST['quem']='c')$quem_vai='cotation';
其他$quem_vai='envoye';
}
$caminho=“yourfoldergoesher/$id\u客户/$quem\u vai”;
如果(!file_存在($caminho)){
如果(!mkdir($caminho,0755,true)){
$error=error_get_last();
echo$error['message'];
}}
$caminho=$caminho.'/'.$arquivo_name;
/*定义一个关于阿奎沃的支持*/
$ext=pathinfo($arquivo\u名称,pathinfo\u扩展名);
$allowed=array('xlsx','xls','doc','docx','pdf','png','jpg','gif','jpeg','ai','cdr','zip','rar','gzip','xlsx','xls','docx','pdf','png','jpg','gif','jpeg','ai','cdr','zip','rar','gzip');
if(在数组中($ext,$allowed)){
移动上传的文件($arquivo,$caminho);
$alert=“☺;存档téléchargéavec success!
”; } else$alert=“扩展无效存档”
“;}}else$alert=“S'il vous plaît poster un archive”; 回显“

”。$alert.



”;
在laravel中,您可以在单击“提交”按钮时验证请求。如果没有选择文件,则可以回调

    $validated = $request->validate([
        'file' => 'required',
    ]);

显示您尝试使用jQuery验证插件的情况。正如您在我的代码中看到的,验证必须在dropzone内。上传文件时,“提交”按钮处于活动状态。我不会将jQuery验证插件与dropzone集成。js@GoranRadovanovic,不,我在您的代码中看不到任何显示jQuery Validate的内容。除非在页面loa时表单不存在ds,没有理由将
validate()
放在放置区代码内。我编辑了我的代码。现在,你可以看到我需要验证的地方。当我单击提交按钮时,文件上传的同时,表单提交了数据(电子邮件、用户名)。@GoranRadovanovic,正如怀疑的那样,你没有尝试我的解决方案。仅供参考,
.validate()
方法只是插件的运行方式
$(document).ready(function () {

    $('#my-awesome-dropzone').validate({
        rules: {
            email: {
                required: true
            },
            usename: {
                required: true
            }
        },
        submitHandler: function(form) {
            // optional callback function
            // only fires on a valid form submission
            // do something only if/when form is valid
            // like process the dropzone queue HERE instead
            // then use .ajax() OR .submit()
            form.submit()
        }
    });

});
Dropzone.options.myAwesomeDropzone = { 

autoProcessQueue: false,

uploadMultiple: true,

parallelUploads: 100,

maxFiles: 100,

init: function() {

var myDropzone = this;


this.element.querySelector("button[type=submit]").addEventListener("click", function(e) {

if($('#my-awesome-dropzone').valid()){

  e.preventDefault();

  e.stopPropagation();

  myDropzone.processQueue();

}
});
$normalizeChars = array(
'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
'Ï'=>'I', 'Ñ'=>'N', 'Ń'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ń'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
'ú'=>'u', 'û'=>'u', 'ü'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f',
'ă'=>'a', 'î'=>'i', 'â'=>'a', 'ș'=>'s', 'ț'=>'t', 'Ă'=>'A', 'Î'=>'I', 'Â'=>'A', 'Ș'=>'S', 'Ț'=>'T',
'’'=>'', ' '=>'-', "'"=>"", '"'=>'', 'ª'=>'a', 'º'=>'o', '°'=>'o', '/'=>'', '«'=>'', '»'=>'', ','=>'',
'ê'=>'e', 'à'=>'a', 'é'=>'e', 'ô'=>'o', 'è'=>'e', 'à'=>'a', 'Ê'=>'E', 'À'=>'A', 'É'=>'E', 'O'=>'O', 'E'=>'E', 'A'=>'A',
'ã'=>'a',);

$arquivo='';

if (isset($_FILES['arquivo']['tmp_name'])) $arquivo = $_FILES['arquivo']['tmp_name'];
if (!empty($arquivo)){
$err=0;
$arquivo_name = strtr($_FILES['arquivo']['name'], $normalizeChars);
$arquivo_size = $_FILES['arquivo']['size'];
$arquivo_type = $_FILES['arquivo']['type'];

if ($arquivo_size > 10240000){
    $alert= "<font color=red>Votre archive ne peut pas dépasser 10 MBs</font>";
    $err++;
}

if ($err==0){
    $id_cliente='';
    if ($_SESSION['poder']==1){
        $id_cliente=$_POST['id_cliente_poder'];
        $quem_vai='3dplan';
    }
    else{
        $id_cliente=$_POST['id_cliente_poder'];
        if ($_POST['quem']=='c') $quem_vai='cotation';
        else $quem_vai='envoye';
    }

    $caminho="yourfoldergoeshere/$id_cliente/$quem_vai";
    if (!file_exists($caminho)){
        if (!mkdir($caminho, 0755, true)){
            $error = error_get_last();
            echo $error['message'];
        }}

    $caminho=$caminho.'/'.$arquivo_name;

    /* Defina aqui o tipo de arquivo suportado */
    $ext = pathinfo($arquivo_name, PATHINFO_EXTENSION);
    $allowed =  array('xlsx', 'xls', 'doc', 'docx', 'pdf', 'png', 'jpg', 'gif', 'jpeg', 'ai', 'cdr', 'zip', 'rar', 'gzip', 'XLSX', 'XLS', 'DOC', 'DOCX', 'PDF', 'PNG', 'JPG', 'GIF', 'JPEG', 'AI', 'CDR', 'ZIP', 'RAR', 'GZIP');
    if (in_array($ext,$allowed)){
        move_uploaded_file($arquivo,$caminho);
        $alert = "&#x263a; Archive téléchargé avec succès! <br/>";
    }
    else $alert= "<font color=red>Extension de archive invalide</font><br/>";}} else $alert= "S'il vous plaît poster un archive";
echo "<br/><br/>".$alert."<br/><br/><br/><br/>";
    $validated = $request->validate([
        'file' => 'required',
    ]);