2
我正在檢查form
中的值是否在提交更新前已更改。 form
內的所有其他控件(如果已更改)均已識別,但 不是input type=file
控件。以下是我正在嘗試的示例,如果您嘗試提交form
有或沒有上傳文件,則迴應是其未更改。爲什麼這種行爲只有input type=file
?爲什麼input type=file
的變化未被識別? 爲什麼輸入類型=文件中的更改沒有用'form.serialzie()'標識'
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>
按[連載()](https://api.jquery.com/serialize/)的文檔:'數據從文件選擇元素不是序列化的。 –
@PranavCBalan任何想法如何克服這一點? –
你可以在這裏使用ajaxForm提交插件:http://malsup.com/jquery/form/,這可能會幫助你 –