2011-12-12 113 views
5

我已经更新了这个问题,因为它可能是因为重力形式阻止了一个简单的函数工作。我之所以这么说,是因为我尝试了很多选项(下面列出)来触发一个jQuery函数,而且他们都不应该在他们应该做的时候工作。点击'Gravity Forms'输入按钮时触发jquery

我有一个简单的函数,低于100%的作品...

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

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

简单,因为它得到的,但我想,当我的提交按钮会从从重力点击来触发此。


这是WordPress的重力形成输入标记......

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


这些都是低于所有的脚本我试过,但没有一个运行函数...

脚本一个

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

脚本两个

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

脚本三

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

脚本四

​​


我也试过......

return false; 

return true; 
在上述所有脚本

,但他们没有返回的功能。如果我将脚本设置为返回false,则表单不会提交,但如果我设置为返回true,则表单提交但该函数不会运行。


为什么会发生这种情况,我认为这将是基本的东西?

感谢您的任何帮助。

+0

'return true;'instead of'false' – asawyer

+1

您的点击函数返回'false'。这可以防止表单提交。 –

+0

试过这个,表单现在提交但是不运行函数 – Joshc

回答

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

试试看吧:)

+0

它不运行函数,嗯很奇怪。我已经三重检查了我的所有代码,但脚本运行良好,但我认为它与以太网变量无法正常工作有关,但它肯定应该,或者因为我使用重力形式,也许这会干扰。你知道我可以通过在输入上添加onclick来实现吗?谢谢 – Joshc

+0

我已经试过它与变量,仍然没有运行的功能。 – Joshc

0

您可以从形式控制它,如果你有一个表单提交..

<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

嗨安德斯谢谢你的回答,我试过你的方法,但不运行脚本。我尝试都返回false和true。返回false会阻止表单提交,但返回true会在函数内部运行whats – Joshc

+0

代码中有错误,它应该是

6

你想拥有的东西在表单提交运行?如果您使用表单的AJAX提交方法,则可以使用gform_confirmation_loaded事件在提交表单后运行一些JavaScript。

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

它会在每个表单提交运行,从而以指定形式,测试传递给事件处理函数的参数form_id。