单击“重力形式”输入按钮时触发 jquery

Posted

技术标签:

【中文标题】单击“重力形式”输入按钮时触发 jquery【英文标题】:Trigger jquery when 'Gravity Forms' input button is clicked 【发布时间】:2012-01-18 12:27:42 【问题描述】:

我已经更新了这个问题,因为它可能是因为重力形式阻止了一个简单的功能工作。我之所以这么说是因为我尝试了很多选项(如下所列)来触发一个 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");
);

脚本四

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

我也试过...

return false; 

return true;

在上面的所有脚本中,但没有一个返回函数。如果我将脚本设置为返回 false,则表单不会提交,但如果我设置为返回 true,则表单会提交,但函数不会运行。

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

感谢您的帮助。

【问题讨论】:

return true; 而不是 false 您的点击函数返回false。这会阻止表单提交。 试过了,现在表单提交了,但是没有运行函数 【参考方案1】:

您是否尝试在表单提交时运行某些内容?如果您使用表单的 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 参数。

【讨论】:

【参考方案2】:

如果你有表单,你可以通过表单提交来控制它。

<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>

【讨论】:

您好 Andres 感谢您的回答,我尝试了您的方法,但没有运行脚本。我尝试了返回false和true。 Return false 阻止表单提交,但 return true 确实运行函数内部的内容 代码有错误,应该是
【参考方案3】:
$contactInput.focus(function () 
    $contactSlide.stop().css("top","0");
    $('body,html').animate(
        scrollTop: 0
    , 0);
    return true;
);

试一试:)

【讨论】:

它不运行该功能,嗯,很奇怪。我已经对我的所有代码进行了三次检查,但脚本运行良好,但我认为这与 ether 变量不起作用有关,但它应该是肯定的,或者因为我使用的是重力形式,也许那是干扰。你知道我可以通过在输入上添加一个 onclick 来做到这一点吗?谢谢 我已经在没有变量的情况下尝试过,但仍然没有运行该函数。

以上是关于单击“重力形式”输入按钮时触发 jquery的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在输入单击和按钮上触发 jQuery datepicker 元素?

jQuery - 更改 iframe src 时仅在第二次单击时触发

JQuery getJson 成功函数在按钮单击时触发

单击按钮时如何触发PHP / jQuery [重复]

为啥 jQuery 的 .change() 事件只在鼠标右键单击时触发?

除了单击按钮之外,如何在 jQuery 中触发模糊?