2

我们有一个包含多个字段的简单表单,如果用户进行任何修改,我们应该显示“保存”按钮,否则不应该显示。当用户在下拉列表中选择某些内容并随后返回到原始值(例如,从 ValA 到 ValB,然后最终到 ValA)时,您如何处理场景。我们应该如何在 Rails 应用程序中处理这个问题。

4

2 回答 2

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);
  });
});

您的工作示例

于 2013-01-05T10:36:21.953 回答
1

我希望 jquery-form-observe 插件能满足你的要求。签出这个

http://code.google.com/p/jquery-form-observe/

于 2013-01-05T10:35:35.390 回答