Javascript 改变YUI(或AlloyUI)方法行为
我试图改变YUI(或Alloy UI)中的_onFormReset方法-我认为这是常见的JavaScript(OOP)东西,但我是JS OOP和YUI中的noob(到目前为止一直在使用一些JQuery)-我如何改变方法的功能(保持其他方法不变) 比如, 当前方法如下所示:Javascript 改变YUI(或AlloyUI)方法行为,javascript,oop,methods,yui,alloy-ui,Javascript,Oop,Methods,Yui,Alloy Ui,我试图改变YUI(或Alloy UI)中的_onFormReset方法-我认为这是常见的JavaScript(OOP)东西,但我是JS OOP和YUI中的noob(到目前为止一直在使用一些JQuery)-我如何改变方法的功能(保持其他方法不变) 比如, 当前方法如下所示: _onFormReset: function(event) { var instance = this; instance.resetAllFields(); }, (src:) 但我希望它是这样的: _on
_onFormReset: function(event) {
var instance = this;
instance.resetAllFields();
},
(src:)
但我希望它是这样的:
_onFormReset: function(event) {
var instance = this;
instance.resetAllFields();
/* PSEUDO:
**a.) action is logged (ajax call to DB)
b.) all fields in form are reset (default behaviour) + form get's a new anti CSFR UID via ajax
c.) notification is shown (like that message in my example but let's say: Form reseted!)
d.) (Submit button reappears)**
...
*/
},
我试过这样的方法:
/* trying to hijack thingZ */
var FormReset = Y.Component.create({
// component name
NAME : 'form-validator-reset',
EXTENDS : Y.Base,
// Base component's method which extends
prototype : {
_onFormReset: function(event) {
var instance = this;
instance.resetAllFields();
Y.one("#submitit").setHTML("<h4>Thanks, form submitted ok</h4>");
}
}
});
/*试图劫持thingZ*/
var FormReset=Y.Component.create({
//组件名称
名称:“表单验证程序重置”,
扩展:Y.Base,
//基本组件的扩展方法
原型:{
_onFormReset:函数(事件){
var实例=这个;
resetAllFields();
Y.one(“#submitt”).setHTML(“谢谢,表格已提交ok”);
}
}
});
但是没有成功
我查看了文档,但找不到方法,而且我似乎缺少OOP Javascript的基础知识:(
谁能帮我“抓鱼”:
很长一段时间都在努力学习好的(OOP)JavaScript,在网上阅读了很多,但对我来说最好的方法是通过编码学习,现在我真的被卡住了
因此,我的愿望是,当单击“重置”按钮时,我可以在所有表单中使用它(同样,我也会更改“提交”)-OOP方法-附加到默认的重置功能,以“我的”方式进行升级。看起来您试图以错误的方式解决此问题。除非您只是作为重写方法的练习来执行此操作,否则如果您只想打印一封感谢信,就不应该这样做 此外,如果您希望感谢用户提交表单,您应该在用户提交表单时尝试这样做,而不是在表单重置时。为此,您需要为表单的“提交”事件订阅一个函数
A.one("#my_form").on("submit", function() {
Y.one("#submitit").setHTML("<h4>Thanks, form submitted ok</h4>");
});
A.one(“#我的表格”)。关于(“提交”,函数(){
Y.one(“#submitt”).setHTML(“谢谢,表格已提交ok”);
});
好的,在重新考虑它之后,我认为preventDefault对我来说是可以的(我将尝试在其他情况下学习OOPJS:))
这是一个(n00by)解决方案:
谢谢,显然我不够清楚,示例中的文本可能会混淆我的意图——我想在默认重置按钮操作中添加其他操作。所以,在我所有的表单中,当点击重置按钮时都会用到一些东西——OOP方法——附加到默认的重置函数,以“我的”方式升级它。目前,使用重置按钮我没有添加此选项的选项(好的,我可以使用另一个通用按钮并编写我自己的函数,但如何“升级”当前的onReset?)。
Y.one(ressetterr).on("click", function(e){
console.log("resetit");
e.preventDefault();
});