2016-02-06 36 views
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>

+1

按[連載()](https://api.jquery.com/serialize/)的文檔:'數據從文件選擇元素不是序列化的。 –

+1

@PranavCBalan任何想法如何克服這一點? –

+0

你可以在這裏使用ajaxForm提交插件:http://malsup.com/jquery/form/,這可能會幫助你 –

回答

相關問題