2013-07-19 28 views
2

在我的Web應用程序中,我編輯了個人資料頁面。在editprofile頁面他們是許多領域,如提交時從Form刪除未改變的輸入字段

Name   : <input type="text" name="name"/> 
Location  : <input type="text" class="geolocation" name="location"> 
Birthdata  : <input type="date" name="dob"> 
Profile Picture : <input type="file" name="photo"/> 

我要發送回只有被編輯的字段的數據,而不是所有的領域。

+0

您是使用標準的「提交」行爲還是通過web-services/wcf?對於WCF/webservices,過濾項目將遵循manoj的解決方案(存儲原始值並在包含值之前進行比較)。對於提交,您可能需要遵循smerny的解決方案(存儲原始值並刪除輸入標籤)。 – Richard

+0

我使用正常的表單提交。 –

回答

4

我通常做這樣的事情在後端....但你的要求,你可以刪除沒有改變的輸入。當你生成html時,你可以定義一個額外的數據屬性。下面是我會怎麼做:

HTML:

<form id="myform"> 
    <input type="text" id="Name" data-initial="Foo" value="Foo" /> 
    <input type="text" id="Location" data-initial="Bar" value="Bar" /> 
    <input type="submit" value="Submit" /> 
</form> 

JS:

$("#myform").submit(function() { 
    $(this).find("input").filter(function() { 
     $this = $(this); 
     return $this.data("initial") == $this.val(); 
    }).remove(); 
}); 

http://jsfiddle.net/uLe7T/
我加入了小提琴警報,所以你可以看到,他們的形式之前去除已提交

+0

+1謝謝..這對我來說是完美的工作 –

2

jsFiddle

HTML

<input id="test" type="text" value="Some Text" data-value="Some Text"> 

JS

$('#test').blur(function() { 
    el = $(this); 
    if (el.val() != el.attr('data-value')) { 
     console.log('Edited'); 
    } else { 
     console.log('Not Edited'); 
    } 
});