0

YUI (または Alloy UI) で _onFormReset メソッドを変更しようとしていました - 一般的な JavaScript (OOP) だと思いますが、私は JS OOP と YUI の初心者です (今まで JQuery を使用していました) - どうすれば機能を変更できますか?メソッドの(他のメソッドをそのまま維持する)?

例えば;

現在のメソッドは次のようになります。

_onFormReset: function(event) {
    var instance = this;
    instance.resetAllFields();
},

(ソース: http://alloyui.com/api/files/alloy-ui_src_aui-form-validator_js_aui-form-validator.js.html#l1192 )

しかし、私はそれが次のようになりたい:

_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>");
        }
    }
});

しかし、成功しませんでした。

私はドキュメントを見て、方法を見つけることができませんでした.OOP Javascriptの基本が欠けているようです:(

誰かが「魚を捕まえる」のを手伝ってくれませんか:)

良い (OOP) JavaScript を長い間学ぼうとして、オンラインでたくさん読んでいますが、私にとって最善の方法はコーディングによって学ぶことであり、今は本当に行き詰まっています...

だから私の願いは、リセットボタンがクリックされたときにすべてのフォームで使用できるもの(送信も変更するのと同じ方法)-OOPメソッド-デフォルトのリセット機能に添付され、「私の」方法でアップグレードすることです。

4

2 に答える 2

0

間違った方法でこれに取り組もうとしているようです。メソッドをオーバーライドする練習としてこれを行っているだけでない限り、本当にありがとうを出力するだけなら、そうすべきではありません。

また、送信してくれたユーザーに感謝したい場合は、フォームがリセットされたときではなく、ユーザーがフォームを送信したときにそうする必要があります。これを行うには、関数をフォームの「送信」イベントにサブスクライブします。

A.one("#my_form").on("submit", function() {
    Y.one("#submitit").setHTML("<h4>Thanks, form submitted ok</h4>");
});
于 2014-08-22T00:36:25.973 に答える