我花了很多时间在JavaScript中解决一个问题。代码片段如下所示。本文中省略了html的其他部分Form
和Table
的详细信息。
<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个字符(显然,对于没有参数的函数)。
答案 0 :(得分:1)
您需要在onclick
。
onclick="SaveData()"
注意:您已经在使用jQuery,因此您不需要使用内联事件。您可以完全删除onclick="SaveData()"
并执行:
function BindData(Data) {
// ...
}
function SaveData() {
// ...
}
$('#btn').on('click', SaveData);
值得注意的是,任何事件处理函数的第一个参数(在本例中,您的SaveData
函数)都将是包含事件来源等事件的事件对象,等等。
有关事件处理的更多信息,请参阅jQuery .on()
here。