我在这里看到了很多误解。
首先,您不是在编写 jQuery 插件。一个 jQuery 插件是这样使用的:
jQuery( ".someSelector" ).myPluginName();
您,您正在使用mytextboxvalidator
传递给 jQuery 函数的方法$.fn.change
。
其次,正如 Sparky672 所说,你真的应该考虑使用已经存在的 jQuery 进行表单验证,那里有很多,只是谷歌它。
第三,由于我是个好人,我会尽力帮助您使用您的插件。
// myFormValidationPlugin is the name of your plugin, change it as you want
$.fn.myFormValidationPlugin = function( options ) {
// bind the event inside the plugin
this.change(function( ev ) {
// doing some BASIC verification
if( options.pattern.test( $(this).val() ) {
// input is valid
// in your example, I guess it's here you want to return TRUE
}
else {
// input is invalid
// in your example, I guess it's here you want to return FALSE
}
});
// NEVER break the chain
// so yes, you can maintain chainability
return this;
};
// usage
$( ".someSelector" ).myFormValidationPlugin({
pattern: /foo/
});
我希望这将有所帮助。但是,除此之外,此代码不会像您一样工作。为了使它工作,你应该:
- 将事件绑定到
submit
表单的事件
- 在处理程序中,检查每个元素是否具有有效值
- 如果所有元素都有效,则执行提交
- 如果一个或多个无效,则禁用该事件,例如
event.preventDefault
调用