Javascript 在jScript中合并两个函数

Javascript 在jScript中合并两个函数,javascript,function,Javascript,Function,我需要在页面上使用AJAX调用PHP脚本(表单验证)。我对PHP很在行,但对javascrip、jScript或任何其他客户端语言都不是很在行,所以我找到了一个免费的演示脚本,可以满足我的需要,现在我正在玩它,只是想看看我是否能在这个过程中学到一些东西。如果我能将两个函数合并成一个函数,有一件事我很好奇 这些函数基本上如下所示: // When user changes something in the form $("#signup").change(function() { // .

我需要在页面上使用AJAX调用PHP脚本(表单验证)。我对PHP很在行,但对javascrip、jScript或任何其他客户端语言都不是很在行,所以我找到了一个免费的演示脚本,可以满足我的需要,现在我正在玩它,只是想看看我是否能在这个过程中学到一些东西。如果我能将两个函数合并成一个函数,有一件事我很好奇

这些函数基本上如下所示:

// When user changes something in the form
$("#signup").change(function()
{
    // ... validation code here
}

// When the form (page) first loads
$("#signup").ready(function()
{
    // ... validation code here
}
第一个函数在表单发生更改时验证表单

有时用户会提前提交表单(例如,按enter键),在这种情况下,验证不会再次发生,直到用户输入更改表单中的某些内容

我使用验证结果来决定将什么类应用于输入元素(告诉用户做了什么和没有做什么),如果表单未完成提交,我希望这种情况保持不变(或立即再次发生)。我知道我可以申请表单验证,在所有必填字段填写完毕之前不会让用户提交,但让我们假设由于未知原因这是不可能的

第二个函数只是第一个函数的副本,并在页面加载时验证表单。这一个最初不在演示脚本中,但我发现我可以复制第一个函数,并将单词“change”更改为“ready”,以便根据需要验证我的表单

现在,出于好奇,有没有办法把它们合并成一个函数而不是两个相同的函数?类似于PHP中的OR运算符:

$("#signup").change(function() || $("#signup").ready(function()
{
    // ... validation code here
}

编辑:是的,我在谷歌上搜索过。但是没有成功,可能是因为我缺乏javascript/jScript知识,我没有使用正确的搜索词…

没有您所描述的内容,但这会给您带来相同的效果

var validate = function () {
    // ... validation code here
}

$("#signup").change(validate);
$("#signup").ready(validate);

您可以创建一个函数,分配给一个变量,然后引用该函数。然后,可以将该引用传递给任何需要函数作为参数的对象-.change、.ready、setTimeout、setInterval等等。

有很多方法可以实现这一点,但因为我们在谈论jQuery,所以最简洁的方法是立即并有目的地触发
更改事件处理程序:

$("#signup").change(function()
{
    // ... validation code here
}).trigger('change'); // causes validation to run

刚试过,效果很好。代码现在看起来好多了,没有重复!谢谢:)