我需要在我的页面上使用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键),在这种情况下,在用户输入更改表单中的内容之前,验证不会再次发生。
我使用验证结果来决定应用于输入元素的类(告诉用户做了什么而不是做什么),如果提交表单而没有完成,我希望保留(或立即再次发生)。我知道我可以申请表单验证,不会让用户提交,直到填写完所有必填字段,但我们假装这是不可能的,原因不明......
第二个函数只是第一个函数的副本,并在页面加载后立即验证表单。这个不是最初在演示脚本中,但我发现我可以复制第一个函数并将“更改”更改为“准备好”以使我的表单得到我想要的验证。
现在,出于好奇,是否有办法将这些功能合并为一个功能而不是两个相同?类似于PHP中的OR运算符:
$("#signup").change(function() || $("#signup").ready(function()
{
// ... validation code here
}
编辑:是的,我已经开始搜索它了。虽然不成功,也许是由于我缺乏javascript / jScript知识,我没有使用正确的搜索条件......
答案 0 :(得分:1)
没有你所描述的那样,但这会给你带来同样的效果。
var validate = function () {
// ... validation code here
}
$("#signup").change(validate);
$("#signup").ready(validate);
您可以创建一个函数,分配给一个变量,然后引用该函数。然后可以将该引用传递给需要函数作为参数的任何内容 - .change,.ready,setTimeout,setInterval等等。
答案 1 :(得分:0)
有很多方法可以解决这个问题,但是既然我们正在为我讨论jQuery,那么最简洁的就是立即触发change
事件处理程序:
$("#signup").change(function()
{
// ... validation code here
}).trigger('change'); // causes validation to run