【问题标题】:Jquery triggering a clickJquery触发点击
【发布时间】:2009-06-02 16:16:11
【问题描述】:

我一直在尝试使用 jquery 来触发点击。

我发现触发点击,像这样: $(button).trigger('click');不要遵循href。我一直在尝试通过触发提交按钮来进行 ajax 提交,但没有成功。

我知道我可以直接提交。但是有什么方法可以触发按钮吗?谢谢。

【问题讨论】:

  • 您正在尝试触发表单提交,但您绑定到提交的代码没有触发?是这样吗?

标签: jquery triggers


【解决方案1】:

jQuery 不会故意触发对 A 元素的原生“点击”。我不知道为什么。

但您可以使用他们使用的技术自己触发链接:

$link[0].click(); // extract the native DOM element and trigger the click

这是未经测试的,但它是从 jQuery 源代码中提取的,应该可以工作。

【讨论】:

  • 太棒了!这正是我所需要的!
【解决方案2】:

我不明白你为什么需要这样做。也许您希望提交按钮的标签与表单一起提交(这样您的服务器代码就知道按下了哪个按钮)。在这种情况下,您可以执行以下操作:

var $form = $("form"); // your form
var $button = $(":submit",$form); // your button
var $hidden = $("<input type='hidden' />");

$hidden.attr("name",$button.attr("name"));
$hidden.val($button.val());

$form.append($hidden);
$form.submit();

我确信这可以优化,但它会起作用(它将使用提交按钮模拟“真实”提交)

【讨论】:

    【解决方案3】:

    不知道你为什么要这样做,但我在这里用下面的方法测试过它并且它有效。

    <form id="frm" action="#">
     <input type="submit" id="btnSubmit" />
      ...
      ...
    </form>
    

    调用这个-> jQuery("#btnSubmit").trigger("点击");

    【讨论】:

      【解决方案4】:

      另一种选择,在 Chrome、Firefox、IE6、IE8 中测试:

      window.location = $('a').trigger('click').href('attr');
      

      我最终使用了这个,因为我们对点击事件有默认的 jquery 链接处理,但我们还想触发实际的链接访问(链接可以是哈希或跨域链接)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-14
        • 2012-08-10
        • 1970-01-01
        • 2011-11-19
        • 2013-03-21
        • 2013-06-14
        • 2012-02-13
        • 1970-01-01
        相关资源
        最近更新 更多