组合jquery元素,隐藏提交按钮,直到字段更改

时间:2014-09-04 14:24:02

标签: jquery forms

这可能很容易解决,但今天大脑还没有打球。我试图隐藏提交按钮,直到表单元素发生变化。为了使事情变得更复杂,其中一个表单字段是Google放置自动填充字段。

感谢SO我能够找到隐藏提交按钮的解决方案,稍微调整一下以产生以下内容:

var $inputs = $('#searchform :input');
  $('.submits').hide()
  $inputs.on('keyup change', function() {
    $('.submits').show();
    $('.submithide').hide();
});

但是,当用户点击Google放置自动填充字段并选择新地点(不按任意键)时,这并未显示提交按钮。所以,在SO上搜索更多,我发现我必须调用addListener事件。我有以下jquery来处理这个问题:

var $inputs = $('#searchform :input');
  $('.submits').hide()
  google.maps.event.addListener(autocomplete, 'place_changed', function() {
     $('.submits').show();
     $('.submithide').hide();

});

我自己测试了这两个jqueries并且它们工作得很好,但问题是,如何将两者结合起来以便识别所有更改(place_changed,change和keyup)?我试过了:

var $inputs = $('#searchform :input');
  $('.submits').hide()
  google.maps.event.addListener(autocomplete, 'place_changed', function()); 
  $inputs.on('keyup change place_changed', function() {
    $('.submits').show();
    $('.submithide').hide();
});
运气不好。有人能指出我正确的方向吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以在变量中存储函数,然后将变量作为回调函数传递。

var toggleSubmits = function() {
    $('.submits').show();
    $('.submithide').hide();
}

google.maps.event.addListener(autocomplete, 'place_changed', toggleSubmits);
$inputs.on('keyup change', toggleSubmits);