Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 改变YUI(或AlloyUI)方法行为_Javascript_Oop_Methods_Yui_Alloy Ui - Fatal编程技术网

Javascript 改变YUI(或AlloyUI)方法行为

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

我试图改变YUI(或Alloy UI)中的_onFormReset方法-我认为这是常见的JavaScript(OOP)东西,但我是JS OOP和YUI中的noob(到目前为止一直在使用一些JQuery)-我如何改变方法的功能(保持其他方法不变)

比如,

当前方法如下所示:

_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)解决方案:

  • 添加#将其重置为重置按钮

  • 添加代码:

    var resetter=Y.one(#resetit”)


  • 谢谢,显然我不够清楚,示例中的文本可能会混淆我的意图——我想在默认重置按钮操作中添加其他操作。所以,在我所有的表单中,当点击重置按钮时都会用到一些东西——OOP方法——附加到默认的重置函数,以“我的”方式升级它。目前,使用重置按钮我没有添加此选项的选项(好的,我可以使用另一个通用按钮并编写我自己的函数,但如何“升级”当前的onReset?)。
    Y.one(ressetterr).on("click", function(e){
        console.log("resetit");
        e.preventDefault();
    
     });