2014-09-04 25 views
0

這可能很簡單,但今天大腦並沒有打球。我試圖隱藏一個提交按鈕,直到表單元素髮生變化。爲了讓事情更復雜一些,表單域中的一個是Google地方自動填充字段。結合了jquery元素,隱藏提交按鈕,直到字段變化

感謝,所以我能夠找到隱藏的提交按鈕的解決方案,適應它一點點地產生如下:

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

然而,這並沒有顯示提交按鈕,當用戶點擊在谷歌地方自動填充字段,並選擇一個新的地方(不按一個鍵)。所以,在SO上搜索一下,我發現我不得不調用addListener事件。我有以下的jQuery來處理這個問題:

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

}); 

我已經自己測試了這些jqueries和他們完美地工作,但問題是,我該如何結合兩者,使所有的變化(place_changed,變化和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(); 
}); 

零運氣。有人能指出我正確的方向嗎?非常感謝 !

回答

0

您可以將函數存儲在變量中,然後只需將該變量作爲回調函數傳遞即可。

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

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

謝謝喬。這像一個魅力。但是,我忽略了$ inputs.on('keyup change place_changed',toggleSubmits);行上的place_changed。你有意把它放在那裏,還是這是一個錯誤?非常感謝您的貢獻! – 2014-09-04 15:02:15

+0

這是一個錯字^ _ ^ – Joe 2014-09-04 15:04:40