提交时从表单中删除未更改的输入字段

时间:2013-07-19 12:52:19

标签: javascript jquery html forms validation

在我的网络应用程序中,我有编辑个人资料页面。在editprofile页面中,他们有许多字段,如

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"/>

我想仅发送已编辑字段的数据,而不是所有字段。

2 个答案:

答案 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/
我在小提琴中添加了一个提醒,以便您可以在提交表单之前看到它们已被删除

答案 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');
    }
});