2016-09-23 33 views
0

我想檢查是否有任何字段更改或不包括排除form.For少數領域。爲此,我試了下一個。如何檢查表單數據是否更改,排除表單上的幾個字段?

$('#FormId').not('#elementId').data("changed") 

但它不排除ID爲'elementId'的元素。

+0

當然的元素ID爲'FormId'的ID同時沒​​有id'elementId'。 '$('#FormId')。not('#elementId')'和$('#FormId')'是一樣的。 – CBroe

+0

有一個ID爲「FormId」的表單,它具有元素「elementID」和更少的元素。我想檢查是否有任何其他元素從from而不是指定的「elementId」。 – Asha

+0

我明白了。我只是向你解釋你爲什麼不能工作。看起來你不知道什麼是不真實的,所以你應該在文檔中閱讀它。 – CBroe

回答

0

你可以做類似如下:

// this binds the following function on any inputs type=text under #FormId 
$('#FormId input[type=text]')bind("change", function(){ 
    // do something 
}); 

// You can add more elements, or classes by adding commas to the selector 
$('#FormId input[type=text], .anotherclass, .onemoreclass')bind("change", function(){ 
. 
. 
. 
. 
0

我想你想檢查表單數據是否改變與否 這裏是一個方法,我有使用。

  1. 創建一個變量,如:oldForm在準備好保存舊值
  2. 所有輸入就會觸發以下 任何改變創建上改變事件是同一

    var oldFormData = ''; 
    
    $(function() { 
    oldFormData == $('#FormId').serialize(); 
    
        $('form :input').on('change input', function() { 
        var isChange = $('#FormId').serialize() !== origForm 
        }); 
    }) 
    
0
代碼的建議

這裏是quick and dirty example

假設您想標記要用數據屬性跟蹤的輸入(本例中爲data-change-tracking)。

HTML

<form action="/echo/html/" method="post"> 
    <p> 
    <label>A text input</label> 
    <input data-change-tracking="true" value="abc"/> 
    </p> 
    <p> 
    <label>A select</label> 
    <select data-change-tracking="true"> 
     <option value="1">option 1</option> 
     <option value="2">option 2</option>  
    </select> 
    </p> 
    <p> 
    <label>A textarea</label> 
    <textarea data-change-tracking="true">old</textarea> 
    </p> 
    <p> 
    <label>Not tracked</label> 
    <input value="123" /> 
    </p> 
</form> 

然後,我們只需添加一個dirty類當輸入已經從以前的值改爲:

的Javascript

$(function() { 
    $('[data-change-tracking]').each(function(){ 
    $(this).data('previousValue', this.value); 
    }); 
    $('form').on('change', '[data-change-tracking]', function(ev) { 
    if (ev.target.value !== $(ev.target).data('previousValue')) { 
     $(ev.target).addClass('dirty'); 
    } else { 
     $(ev.target).removeClass('dirty'); 
    } 
    }); 
}); 
相關問題