2013-01-05 103 views
2

我們有一個簡單的包含多個字段的表單,如果用戶做出任何修改,我們應該顯示Save按鈕,否則不應顯示。當用戶在下拉菜單中選擇某些內容並隨後返回原始值(例如,從ValA到ValB,最終到達ValA)時,如何處理情景。我們應該如何在Rails應用程序中處理這個問題。如何查看是否對錶單進行了更改

回答

2

編輯

我做了一些更新。這不是最漂亮的,但已經晚了,這是我現在能做的最好的。

添加了助手函數來評估值並與對象中的現有值進行比較。如果存在,我們迭代一個變量。如果表單元素的長度與默認值的出現次數相匹配,那麼我們隱藏顯示按鈕。我允許在函數中使用2個參數,我們想要檢查值的元素以及我們希望切換其可見性的元素。

希望這會有所幫助。

$(function() { 
    var defaults = {}, 
     eles = $('form *').filter(':input'), 
     btn = $('.submit'); 
    function checkEmpty(objs, toggle){ 
    var len = objs.length, 
     occurences = 0; 
    $.each(objs, function(i,obj){ 
     if(defaults[i].value == obj.value){ 
      occurences++; 
     } 
    }); 
    if(len == occurences){ 
     toggle.hide(); 
    }else{ 
     toggle.show(); 
    } 
    } 
    eles.each(function (i, ele) { 
    defaults[i] = { 
     'id': this.id, 
     'value': this.value 
    }; 
    }); 
    eles.on('keyup propertychange change paste input focusout', function (e) { 
    checkEmpty(eles, btn); 
    }); 
}); 

Your working example

+0

你是不可思議的,你知道+1 –

+0

@roXon感謝萌芽狀態。 :) – Ohgodwhy

+0

@roXoN jsBin是對的!這樣寫得更好。 – Ohgodwhy

相關問題