【发布时间】:2009-06-02 16:16:11
【问题描述】:
我一直在尝试使用 jquery 来触发点击。
我发现触发点击,像这样: $(button).trigger('click');不要遵循href。我一直在尝试通过触发提交按钮来进行 ajax 提交,但没有成功。
我知道我可以直接提交。但是有什么方法可以触发按钮吗?谢谢。
【问题讨论】:
-
您正在尝试触发表单提交,但您绑定到提交的代码没有触发?是这样吗?
我一直在尝试使用 jquery 来触发点击。
我发现触发点击,像这样: $(button).trigger('click');不要遵循href。我一直在尝试通过触发提交按钮来进行 ajax 提交,但没有成功。
我知道我可以直接提交。但是有什么方法可以触发按钮吗?谢谢。
【问题讨论】:
jQuery 不会故意触发对 A 元素的原生“点击”。我不知道为什么。
但您可以使用他们使用的技术自己触发链接:
$link[0].click(); // extract the native DOM element and trigger the click
这是未经测试的,但它是从 jQuery 源代码中提取的,应该可以工作。
【讨论】:
我不明白你为什么需要这样做。也许您希望提交按钮的标签与表单一起提交(这样您的服务器代码就知道按下了哪个按钮)。在这种情况下,您可以执行以下操作:
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();
我确信这可以优化,但它会起作用(它将使用提交按钮模拟“真实”提交)
【讨论】:
不知道你为什么要这样做,但我在这里用下面的方法测试过它并且它有效。
<form id="frm" action="#">
<input type="submit" id="btnSubmit" />
...
...
</form>
调用这个-> jQuery("#btnSubmit").trigger("点击");
【讨论】:
另一种选择,在 Chrome、Firefox、IE6、IE8 中测试:
window.location = $('a').trigger('click').href('attr');
我最终使用了这个,因为我们对点击事件有默认的 jquery 链接处理,但我们还想触发实际的链接访问(链接可以是哈希或跨域链接)。
【讨论】: