簡體   English   中英

jQuery - 在所有字段(輸入、選擇)中比較表單提交上的新值和舊值?

[英]jQuery - Compare new value with old value on form submit, across all fields (inputs, selects)?

我正在閱讀這個問題的答案,但它只用一個字段解決了問題,我將如何在表單上查看所有字段(輸入、select、收音機等)?

這是我目前擁有的(我正在使用委托,此表單動態注入頁面):

$('#preferencesBody').delegate('input[type="radio"], select', 'change', function() {
    var key = $(this).attr('data-key');
    var value = $(this).val();

    // How to get the old value, and compare with the current value, if they are different, call saveUserPreferences?

    Preferences.saveUserPreferences(key, value);
});

謝謝。

$('#formID:input')

將 select id=formID表單上的所有輸入字段(包括文本區域和按鈕)

所以你的 function 看起來像這樣..

$('#preferencesBody').delegate(':input', 'change', function() {
  var key = $(this).attr('data-key');
  var value = $(this).val();

  Preferences.saveUserPreferences(key, value);
});

我推出了自己的實現,在綁定數據時使用了附加屬性,並根據附加屬性的值檢查了該值,即:

$('#preferencesBody').delegate('input[type="text"]:not(.password)', 'blur', function() {
    var value = $(this).val();
    var currentValue = $(this).attr('data-currentvalue');

    if (value !== currentValue) {
        $(this).attr('data-currentvalue', value);
        Preferences.saveUserPreferences(value);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM