2011-12-12 10 views
5

Zaktualizowałem pytanie, ponieważ może to być spowodowane formami grawitacyjnymi, które uniemożliwiają działanie prostej funkcji. Powodem, dla którego mówię, jest to, ponieważ próbowałem tak wielu opcji (wymienionych poniżej), aby uruchomić funkcję jQuery, i żaden z nich nie działa, gdy powinien.Uruchamiaj jquery po kliknięciu przycisku wprowadzania "Gravity Forms"

mam prostą funkcję, poniżej której 100% działa ...

var $contactButton = $(".contact-slide a"), 
    $contactSlide = $("#horizon-slide"); 

function() { 
    $contactSlide.stop().css("top","0"); 
}; 

prosty, jak to robi, ale staram się wywołać tego kiedy mój złożyć przycisk zostanie kliknięty od ciężkości od.


To wordpress grawitacja tworzy znaczników wejściowy ...

<input type="submit" id="gform_submit_button_1" class="button gform_button" value="Send" tabindex="7"></input> 


Są to wszystkie skrypty Poniższe że próbowałem, ale żaden z nich uruchomić funkcję ...

Script Jednym

$("input#gform_submit_button_1").on('click', function() { 
    $contactSlide.stop().css("top","0"); 
}); 

Script Dwa

$("input#gform_submit_button_1").click(function() { 
    $contactSlide.stop().css("top","0"); 
}); 

Script Trzy

$("input#gform_submit_button_1").focus(function() { 
    $contactSlide.stop().css("top","0"); 
}); 

Script Cztery

$("form#gform_1").submit(function(event) { 
$contactSlide.stop().css("top","0"); 
}); 


Ja również próbował ...

return false; 

i

return true; 

na wszystkie skrypty powyżej, ale żaden z nich nie powrócić funkcję. Jeśli ustawię skrypty, aby zwracały fałsz, to formularz nie zostanie przesłany, ale jeśli ustawię wartość true, to formularz zostanie przesłany, ale funkcja nie zostanie uruchomiona.


Dlaczego tak się dzieje, myślałem, że to będzie podstawowe rzeczy?

Dzięki za pomoc.

+0

'return true;' zamiast 'false' – asawyer

+1

Funkcja kliknięcia zwraca' false'. Zapobiega to przesyłaniu formularza. –

+0

Wypróbowałem to, a formularz przesyła się teraz, ale nie wykonuje funkcji – Joshc

Odpowiedz

0
$contactInput.focus(function() { 
    $contactSlide.stop().css("top","0"); 
    $('body,html').animate({ 
     scrollTop: 0 
    }, 0); 
    return true; 
}); 

Spróbować :)

+0

Nie uruchamia tej funkcji, hmmm dziwne. Trzykrotnie sprawdzałem cały mój kod, ale skrypt działa dobrze, ale myślę, że ma coś wspólnego z tym, że eter nie działa, ale powinien na pewno, albo dlatego, że używam form grawitacji, może to przeszkadza. Czy znasz sposób, w jaki mogę to zrobić poprzez dodanie onclick na wejściu? Dzięki – Joshc

+0

Próbowałem go bez zmiennej i nadal nie działa funkcja. – Joshc

0

można kontrolować z formularza przesłać jeśli mają formę ..

<script type="text/javascript" src="js/jquery1.6.1.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("#forma").submit(function(event) { 
     //do what ever you need to here 
     return false; 
    }); 
}); 
</script> 
<form name="1stform" method="post" action="/"> 
    <input type="text" name="misc" id="misc" /> 
    <input type="submit" name="submit" id="submit" value="submit 1st form"/> 
</form> 
+0

Cześć Andres dzięki za odpowiedź, próbowałem twojej metody, ale nie uruchamia skryptu. Próbowałem zarówno zwrot false i true. Return false zatrzymuje wysyłanie formularza, ale return true powoduje uruchomienie funkcji wewnątrz funkcji – Joshc

+0

Wystąpił błąd w kodzie, powinien to być

6

Czy starasz się coś uruchomić po złożeniu formularza? Jeśli używasz metody przesyłania AJAX formularza, możesz użyć zdarzenia gform_confirmation_loaded, aby uruchomić JavaScript po przesłaniu formularza.

$(document).on('gform_confirmation_loaded', function(e, form_id){ 
    if(form_id == 2) { 
     $contactSlide.stop().css("top","0"); 
    } 
}); 

Będzie on uruchamiany na każdym formularzu zgłoszenia, aby określić formularz, przetestuj parametr form_id przekazany do obsługi zdarzenia.