在JavaScript中不调用Onclick函数

时间:2017-06-24 22:10:59

标签: javascript jquery

我花了很多时间在JavaScript中解决一个问题。代码片段如下所示。本文中省略了html的其他部分FormTable的详细信息。

<input id="btn" type="button" value="Save Customer" onclick="SaveData" />

<script lang="javascript">

function BindData(Data)
{
    $("#status").text("Loading......");
    //This removes all other rows except first
    tbl.find("tr:gt(0)").remove();
    //More logic is there to fill a table
 }

function SaveData()
{
    $("#status").text("Adding data. Please wait......");
    var frm = $("#frmCustomer").serialize();
    $.post("Submit", frm, BindData);
}

</script>

HTML中onclick事件的语法在w3schools定义为:

<element onclick="myScript">

我从链接中获取了我的代码(认为是真实的)并在之后过度查看。现在,这又提出了另一点:为什么必须在函数名后提供()?如果语法允许仅提及函数名称,则可以保存2个字符(显然,对于没有参数的函数)。

1 个答案:

答案 0 :(得分:1)

您需要在onclick

中加入括号
onclick="SaveData()"

注意:您已经在使用jQuery,因此您不需要使用内联事件。您可以完全删除onclick="SaveData()"并执行:

function BindData(Data) {
  // ...
}

function SaveData() {
  // ...
}

$('#btn').on('click', SaveData);

值得注意的是,任何事件处理函数的第一个参数(在本例中,您的SaveData函数)都将是包含事件来源等事件的事件对象,等等。

有关事件处理的更多信息,请参阅jQuery .on() here