javascript – 获取触发jquery中的onclick事件的元素?

我有一个形式,我已经替换提交按钮与一个输入(类型=按钮)与一个onclick调用一个现有的函数:

<form accept-charset="UTF-8" action="/admin/message_campaigns" class="new_message_campaign" id="new_message_campaign" method="post">
  <!-- some fields -->
      <input onclick="confirmSubmit();" type="button" value="Send" />
</form>

在confirmSubmit,我想能够动态获取表单对象(提交),而不必硬编码表单的id,或将其作为调用confirmSubmit()的一部分。我想我可以这样做,首先获得点击的dom元素,也就是这样的:

var form = $(this).parents("form");

其中$(this)是调用函数的对象,即使用onclick的输入。这不工作,虽然。我认为它会工作,如果我用.click(function(){语法。)我可以得到的元素,以不同的方式调用该函数?

编辑 – 从下面的@claudio的答案,为了清楚这里的完整的功能和调用:

<form accept-charset="UTF-8" action="/admin/message_campaigns" class="new_message_campaign" id="new_message_campaign" method="post">
  <!-- some fields -->
      <input onclick="confirmSubmit($(this));" type="button" value="Send" />
</form>

和函数本身。注意,’jConfirm’是jquery-alerts插件的一个方法(http://abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/),但这不是真的与这个问题相关 – 关键的是获取表单对象,而不是后来做的事情:

function confirmSubmit(caller) {
  var form = caller.parents("form");
  jConfirm('Are you sure?', 'Please Confirm', function(result){
    if (result) {
      form.submit();
    } else {
      return false;
    }
  });
}
最佳答案
您可以传递内联处理程序this关键字,获取触发事件的元素。

喜欢,

onclick="confirmSubmit(this);"

转载注明原文:javascript – 获取触发jquery中的onclick事件的元素? - 代码日志