【问题标题】:Trigger jquery when 'Gravity Forms' input button is clicked单击“重力形式”输入按钮时触发 jquery
【发布时间】: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。这会阻止表单提交。
  • 试过了,现在表单提交了,但是没有运行函数

标签: jquery forms wordpress input onclick


【解决方案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 来做到这一点吗?谢谢
    • 我已经在没有变量的情况下尝试过,但仍然没有运行该函数。
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2012-07-28
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    相关资源
    最近更新 更多