teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ボタンを押した時のコードを追加

2021/08/17 06:44

投稿

JunYoshida
JunYoshida

スコア20

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,55 @@
16
16
  <textarea class="ps-postbox__input ps-textarea ps-postbox-textarea" name="umi" id="umi" >海
17
17
  </textarea>
18
18
  </div>
19
+ ```
20
+
21
+ ボタンを押した時のコード(Peepsoというライブラリを使っていて、解読したところの一部抜粋です。)
22
+ ```JavaScript
23
+ peepso.npm.objectAssign(
24
+ PsPostbox.prototype,
25
+ PsObserver.prototype,
26
+
27
+ this.$btns = this.$el.find('.ps-postbox-action');
28
+ this.$btnSubmit = this.$btns.find('.ps-button-action');
29
+
30
+ /**
31
+ *
32
+ */
33
+ getData: function () {
34
+ var data = this._getData();
35
+ data = this.applyFilters('data', data);
36
+ data = peepso.observer.applyFilters('postbox_data', data, this); // deprecated
37
+ return data;
38
+ },
39
+
40
+ /**
41
+ * Check whether current postbox state allows user to submit.
42
+ * @return {boolean}
43
+ */
44
+ validate: function () {
45
+ var data = this._getData(),
46
+ status = data.content.trim(),
47
+ valid = status ? true : false;
48
+
49
+ return this.applyFilters('data_validate', valid, data);
50
+ },
51
+
52
+ /**
53
+ * Handle submit action.
54
+ */
55
+ submit: function () {
56
+ if (typeof this.opts.submit === 'function' && this.validate()) {
57
+ this.$btns.hide();
58
+ this.$loading.show();
59
+ this.opts.submit(
60
+ this,
61
+ this.getData(),
62
+ $.proxy(function () {
63
+ this.$loading.hide();
64
+ this.$btns.css('display', 'flex');
65
+ }, this)
66
+ );
67
+ }
68
+ },
69
+
19
70
  ```