有时候真不知道苹果都在做些什么。。这次safari的更新会导致 form在使用xhr提交的时候,如果表单里有<input type="file" />但没有选择文件,这时候表单就提交失败了,本文的标题就是stackoverflow上面的人提出的问题。
大部分奇技淫巧(或者说奇巧淫技)都是说,如果判断input type=file,如果length==0,即没有选择文件,就先将它disable掉,然后new FormData后,再将它恢复。
原文看这里,提供了两个解决方案,一个是用jquery的,一个是不用的:https://stackoverflow.com/questions/49614091/safari-11-1-ajax-xhr-form-submission-fails-when-inputtype-file-is-empty
用JQuery:
JavaScript代码
- var $form = $('form')
- var $inputs = $('input[type="file"]:not([disabled])', $form)
- $inputs.each(function(_, input) {
- if (input.files.length > 0) return
- $(input).prop('disabled', true)
- })
- var formData = new FormData($form[0])
- $inputs.prop('disabled', false)
不用:
JavaScript代码
- var form = document.querySelector('form')
- var inputs = form.querySelectorAll('input[type="file"]:not([disabled])')
- inputs.forEach(function(input) {
- if (input.files.length > 0) return
- input.setAttribute('disabled', '')
- })
- var formData = new FormData(form)
- inputs.forEach(function(input) {
- input.removeAttribute('disabled')
- })
为什么safari还不更新????
更详细 更多的回复,直接看原文吧
总感觉好象本月没做啥事情啊,其实上个月也没做啥事情,只是为什么都得到1点多才睡呢?真奇怪
本月做的事情太少了,或者说都是碎片化的事情,比如花上一晚上写个微信投票啥的,解决别人几十个BUG,埋掉了别人的一些坑之类的
真心感觉没有什么可以做的。这一个月就这么浑浑噩噩的过去了。然后就最近这几天在看看Swift,在朋友的帮忙下看看几千行的OC代码,感觉不能急进,还是慢慢来吧
今天是所有女性的节日,当然也是我老婆和我妈的节日。祝他们节日快乐
虽然今年的关于38的段子特别多,但我并不想一一转贴,男同胞也好,女同胞也好,都快乐吧。虽然,我们办公室现在一个女同胞都没有了(都放假了。。)
发个大牢骚,github被墙了。我艹,你TMD墙了这个站,我纠结啊。很多事情都没有办法做了。
下个phpredis,打不开
想看astaxie写的关于go的文档打不开
想。。。。。打不开
我日啊。github怎么得罪你了?难道就是因为有12306的插件挂在上面?
生日一直是过阴历的,所以老婆也不知道我具体是哪一天。
反而,一大早老爸电话过来说生日快乐 .一下子心情感到激动又羞愧,他们生日的时候,我却也只是一个电话过去而已。
本来约定要吃穷某人的,结果因为老丈人、丈母娘发烧,小朋友拉肚子,老婆身体不舒服,所以放弃了这个伟大的计划,回家带小孩了。当然,照顾完小孩睡觉后。去楼下的小摊上叫了瓶啤酒,点了两个菜。算是过了生日。
然而,令人震精的事情发生了。。某些人居然在微博上炫耀:
-
最后的海豹:我们的目标,吃穷@颓废小魔,喝穷@膘叔,膘叔,你的牛肉在我这里,欢迎自提,啊哈哈哈,btw,生日快乐
转发(3)| 收藏| 评论 5分钟前 来自小米手机
-
颓废小魔
: @膘叔 看! 我在:http://t.cn/zll6jsA
上海市,闵行区,姚虹路 - 显示地图
转发| 收藏| 评论 44分钟前 来自iPhone客户端
-
颓废小魔
: @膘叔 看 我在:http://t.cn/zll6WlO
转发| 收藏| 评论 45分钟前 来自iPhone客户端
你说说看, 这个素质 .。。。真不厚道