为什么输入类型=文件中的更改没有用“form.serialzie()”标识
Why the change in input type=file is not identified with `form.serialzie()`
在提交更新之前,我正在检查form
中的值是否已更改。form
内的所有其他控件(如果更改(将被标识,但不是input type=file
控制。下面是我正在尝试的示例,如果您尝试在上传或不上传文件的情况下提交form
,则响应不会更改。为什么这种行为只有input type=file
?为什么没有确定input type=file
的变化?
var form_serialize = "";
$(function() {
form_serialize = $("#frmProfile").serialize();
})
$('.submit').on('click', function(e) {
e.preventDefault();
var isChanged = $("#frmProfile").serialize() == form_serialize ? false : true;
if (isChanged)
$('body').append('changed');
else
$('body').append('Not changed');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="frmProfile">
<input type="file" />
<input type="submit" class="submit" value="Submit" />
</form>
根据 serialize(( 的文档
文件选择元素中的数据不会序列化。
相反,您可以使用支持jQuery ajaxForm的插件。
或者你可以使用FormData
对象,参考这些问题:Jquery/Ajax Form Submit(enctype="multipart/form-data"(。为什么 'contentType:False' 会导致 PHP 中未定义的索引?,使用 jQuery.ajax 发送多部分/表单数据
相关文章:
- 门户网站:当地时间有多有用
- Dojo:访问dijit.form.Select中单击的项目
- Javascript form innerHTML
- 无法在有条件呈现的富:面板上提交h:form
- Javascript form.submit()方法是如何工作的
- 使用ScriptObjectMirror将数组结果从JavaScript转换为有用的东西
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- Javascript中的模块模式和揭示模块模式是否仅在创建API时有用;s
- This.Form.Submit() on CakePHP
- 带有CSS的数据属性就没那么有用了
- 带有Request.Form的JScript数组
- modernizr.js还有用吗
- jQuery函数无法处理Form Submit
- 使用application/x-www-form-urlencoded使用node.js在post请求中发送数组
- Javascript:获取“;FORM”;它是在.html到外部.js文件中创建的
- 如何停止向上滚动<按钮dojoType=“;dijit.form.Button”;type=“;提交”/>在
- Angular Form Wide验证(不特定于字段)
- 当在coldfusion中通过AJAX传递时,FORM提交在IE浏览器中给出空表单
- Form获胜'没有ID主联系表格无法验证
- 为什么输入类型=文件中的更改没有用“form.serialzie()”标识