Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 使用手机时未提交联系表7_Javascript_Php_Wordpress_Mobile_Contact Form 7 - Fatal编程技术网

Javascript 使用手机时未提交联系表7

Javascript 使用手机时未提交联系表7,javascript,php,wordpress,mobile,contact-form-7,Javascript,Php,Wordpress,Mobile,Contact Form 7,我用的是联系方式7。我发现,如果我使用文件上传输入,并且在手机上,表单将不会提交。这是表格代码 [text* full-name placeholder "Full Name"] [email* your-email placeholder "Email"] [tel* phone placeholder "Phone Number"] <div class="input-wrapper"> [text* city class:input-city placeholder "City

我用的是联系方式7。我发现,如果我使用文件上传输入,并且在手机上,表单将不会提交。这是表格代码

[text* full-name placeholder "Full Name"]
[email* your-email placeholder "Email"]
[tel* phone placeholder "Phone Number"]
<div class="input-wrapper">
[text* city class:input-city placeholder "City"]<span class="styled-select">[select* state class:input-state include_blank data:us_subdivisions.states]</span>
</div>
<div class="upload-wrapper">
[file applicants-resume id:fileuploadfield class:fileuploadfield filetypes:pdf|doc|docx id:applicants-resume][text uploadtextfield id:uploadtextfield class:uploadtextfield placeholder "Resume(PDF,Doc)"]<input type="button" id="uploadbrowsebutton" value="Browse">
</div>
[hidden position-id id:position-id "Position ID"]
[submit "Submit"]
[文本*全名占位符“全名”]
[电子邮件*您的电子邮件占位符“电子邮件”]
[电话*电话占位符“电话号码”]
[文本*城市类:输入城市占位符“城市”][选择*状态类:输入状态包含\空白数据:美国\细分。状态]
[文件申请者简历id:fileuploadfield类别:fileuploadfield文件类型:pdf | doc | docx id:申请者简历][文本uploadtextfield id:uploadtextfield类别:uploadtextfield占位符“简历(pdf,doc)”]
[隐藏位置id:位置id“位置id”]
[提交“提交”]
我一直在网上搜索,发现其他人有这个问题,但到目前为止没有解决办法。非常感谢您的帮助


更新:我发现如果有一个附加的文件,也就是说,字段中有一些内容,它就会工作。如果字段为空,它将不起作用。

好的,我可以编写一个hack。一个人提出了这个建议

$("input[type=file]").each(function() {
   if($(this).val() === "") {
     $(this).remove();
   }
  });

我不得不改变这种做法。当用户试图提交无效表单时,我必须添加代码。以下是我的想法:

$('body').on('click', '.wpcf7-submit', function(e){

        $("input[type=file]").each(function() {
           if($(this).val() === "") {
             $(this).remove();
           }
        });

    });

document.addEventListener( 'wpcf7invalid', function( event ) {

        if ( 'XXXX' == event.detail.contactFormId ) {

            if( $(".fileuploadfield").parents(".applicants-resume").length == 1 ) {
                // we have a file
            } else {
                $('.applicants-resume').append('<input type="file" name="applicants-resume" size="40" class="wpcf7-form-control wpcf7-file wpcf7-validates-as-required fileuploadfield" id="fileuploadfield" accept=".pdf,.doc,.docx" aria-required="true" aria-invalid="false">');
            }

        }

    }, false );
$('body')。在('click','wpcf7 submit',函数(e){
$(“输入[type=file]”)。每个(函数(){
if($(this).val()=“”){
$(this.remove();
}
});
});
document.addEventListener('wpcf7invalid',函数(事件){
如果('XXXX'==event.detail.contactFormId){
如果($(“.fileuploadfield”).parents(“.Appenders resume”).length==1){
//我们有档案
}否则{
$('申请人简历')。附加('');
}
}
},假);
如果文件输入为空,代码的第一部分将删除该文件输入。这允许Safari IOS提交表单

接下来,我使用Contact form 7的事件处理程序wpcf7invalid检查表单是否有错误

如果有错误,我会检查文件输入是否存在或是否已删除。如果它被删除了,我会将它添加回表单,这样用户可以在下一次连续尝试时上载文件

XXXX代表表单ID


我希望这能帮助其他在手机上使用文件输入联系表单7时遇到问题的人。

该表单是否在手机上工作而不使用文件上载字段?如果你从头开始写一个简单的表单,它可以在手机上工作吗?是的,如果没有上传文件,表单可以在手机上工作。注意你指的是哪个“手机”非常重要。IOS在文件方面有很多问题。我目前正在IOS上测试