質問編集履歴
5
完成
title
CHANGED
File without changes
|
body
CHANGED
@@ -108,4 +108,103 @@
|
|
108
108
|
→obj.dayなどが上から引っ張られずにデータが入ってこなかった
|
109
109
|
|
110
110
|
途中でリロードしてHTMLを取り込んだ後の処理を入れた
|
111
|
-
→現状。一瞬だけtableが現れて消える
|
111
|
+
→現状。一瞬だけtableが現れて消える
|
112
|
+
|
113
|
+
追記:できました!
|
114
|
+
```jQuery
|
115
|
+
/* ローカルストレージ設定 */
|
116
|
+
var storage = localStorage;
|
117
|
+
let datalist_st = storage.getItem('datalist');
|
118
|
+
/* 入力ボタンを押すとデータを取得する */
|
119
|
+
$(function() {
|
120
|
+
const day = $('#day').val();
|
121
|
+
const money = $('#money').val();
|
122
|
+
|
123
|
+
displayList();
|
124
|
+
$('#f1').on('submit', function(e) {
|
125
|
+
|
126
|
+
e.preventDefault()
|
127
|
+
|
128
|
+
if ($('#day').val() === '') {
|
129
|
+
alert('日付を入力してください');
|
130
|
+
return false;
|
131
|
+
}
|
132
|
+
if ($('#money').val() === '') {
|
133
|
+
alert('金額を入力してください');
|
134
|
+
return false;
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
if (datalist_st != null) {
|
139
|
+
datalist = JSON.parse(datalist_st);
|
140
|
+
} else {
|
141
|
+
datalist = [];
|
142
|
+
}
|
143
|
+
|
144
|
+
const row_data = {
|
145
|
+
day: $('#day').val(),
|
146
|
+
money: $('#money').val()
|
147
|
+
};
|
148
|
+
|
149
|
+
datalist.push(row_data);
|
150
|
+
|
151
|
+
storage.setItem('datalist', JSON.stringify(datalist));
|
152
|
+
$("#day,#money").val("");
|
153
|
+
window.location.reload();
|
154
|
+
});
|
155
|
+
});
|
156
|
+
|
157
|
+
function displayList() {
|
158
|
+
if (datalist_st != null) {
|
159
|
+
datalist = JSON.parse(datalist_st);
|
160
|
+
} else {
|
161
|
+
datalist = [];
|
162
|
+
}
|
163
|
+
for (i = 0; i < datalist.length; i++) {
|
164
|
+
let record_tr = $('<tr></tr>', {
|
165
|
+
id: 'row_' + i
|
166
|
+
});
|
167
|
+
const td_id = $('<td></td>', {
|
168
|
+
hidden: 'hidden',
|
169
|
+
html: i
|
170
|
+
});
|
171
|
+
const td_day = $('<td></td>', {
|
172
|
+
html: datalist[i].day
|
173
|
+
});
|
174
|
+
const td_money = $('<td></td>', {
|
175
|
+
html: datalist[i].money
|
176
|
+
});
|
177
|
+
const remove_btn = $('<button></button>', {
|
178
|
+
html: '-',
|
179
|
+
type: 'button',
|
180
|
+
class: 'remove'
|
181
|
+
});
|
182
|
+
remove_btn.attr('data-id', i);
|
183
|
+
const td_remove = $('<td></td>', {
|
184
|
+
html: remove_btn
|
185
|
+
});
|
186
|
+
record_tr.append(td_id);
|
187
|
+
record_tr.append(td_day);
|
188
|
+
record_tr.append(td_money);
|
189
|
+
record_tr.append(td_remove);
|
190
|
+
record_tr.append(td_remove);
|
191
|
+
$('#list').append(record_tr);
|
192
|
+
}
|
193
|
+
/* 選択した列のデータを削除 */
|
194
|
+
$("#list").click(function() {
|
195
|
+
let storageItem = JSON.parse(storage.getItem('datalist'));
|
196
|
+
const id = 'data-id';
|
197
|
+
const index = storageItem.findIndex((v) => v.id === id);
|
198
|
+
const removeid = storageItem.splice(index, 1);
|
199
|
+
storage.setItem('datalist', JSON.stringify(storageItem));
|
200
|
+
window.location.reload();
|
201
|
+
});
|
202
|
+
}
|
203
|
+
|
204
|
+
|
205
|
+
/* 全てのデータを削除 */
|
206
|
+
$("#clear").click(function() {
|
207
|
+
storage.clear();
|
208
|
+
window.location.reload();
|
209
|
+
});
|
210
|
+
```
|
4
HTML修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,51 +52,53 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
```HTML
|
55
|
-
|
55
|
+
<div class="main">
|
56
|
+
<form id="f3">
|
56
|
-
|
57
|
+
<div class="jougen">
|
57
|
-
|
58
|
+
<p>課金上限</p>
|
59
|
+
<p>
|
60
|
+
<output id="rslt" form="settei" class="jogen">0</output>円
|
61
|
+
</p>
|
62
|
+
</div>
|
63
|
+
</form>
|
64
|
+
<div class="honbun1">
|
65
|
+
<p>入力</p>
|
66
|
+
<div style="display:inline-flex">
|
67
|
+
<form id="f1">
|
68
|
+
<div class="moji">
|
69
|
+
<input type="date" name="day" id="day" class="day">
|
70
|
+
<input type="number" class="money" name="money" id="money">円
|
71
|
+
<input type="submit" value="入力" class="kettei1">
|
72
|
+
</div>
|
73
|
+
</form>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
<div class="nokori">
|
77
|
+
<p>今月の残り課金額</p>
|
58
78
|
<p>
|
59
|
-
<output
|
79
|
+
<output name="result" >0</output>円
|
60
80
|
</p>
|
61
81
|
</div>
|
82
|
+
<br>
|
83
|
+
<form id="f2">
|
84
|
+
<p>履歴</p>
|
85
|
+
<div class="rireki">
|
86
|
+
<table id="t1" border="1">
|
87
|
+
<thead>
|
88
|
+
<tr>
|
89
|
+
<th hidden>id</th>
|
90
|
+
<th width="30%">日付</th>
|
91
|
+
<th width="50%">金額</th>
|
92
|
+
<th width="20%">削除</th>
|
93
|
+
</tr>
|
94
|
+
</thead>
|
95
|
+
<tbody id="list"></tbody>
|
96
|
+
</table>
|
97
|
+
</div>
|
62
|
-
|
98
|
+
</form>
|
63
|
-
<div class="honbun1">
|
64
|
-
<p>入力</p>
|
65
|
-
<div style="display:inline-flex">
|
66
|
-
<form id="f1">
|
67
|
-
<div class="moji">
|
68
|
-
<input type="date" name="day" id="day" class="day">
|
69
|
-
<input type="number" class="money" name="money" id="money">円
|
70
|
-
|
99
|
+
<input type="button" value="クリア" id="clear">
|
71
|
-
</div>
|
72
|
-
</form>
|
73
|
-
</div>
|
74
100
|
</div>
|
75
|
-
<div class="nokori">
|
76
|
-
<p>今月の残り課金額</p>
|
77
|
-
<p>
|
78
|
-
<output name="result" >0</output>円
|
79
|
-
</p>
|
80
|
-
</div>
|
81
|
-
<br>
|
82
|
-
<form id="f2">
|
83
|
-
<p>履歴</p>
|
84
|
-
<div class="rireki">
|
85
|
-
<table id="t1" border="1">
|
86
|
-
<thead>
|
87
|
-
<tr>
|
88
|
-
<th hidden>id</th>
|
89
|
-
<th width="30%">日付</th>
|
90
|
-
<th width="50%">金額</th>
|
91
|
-
<th width="20%">削除</th>
|
92
|
-
</tr>
|
93
|
-
</thead>
|
94
|
-
<tbody id="list"></tbody>
|
95
|
-
</table>
|
96
|
-
</div>
|
97
|
-
|
101
|
+
</body>
|
98
|
-
<input type="button" value="クリア" id="clear">
|
99
|
-
</div>
|
100
102
|
```
|
101
103
|
|
102
104
|
|
3
HTML修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,45 +52,51 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
```HTML
|
55
|
+
<div class="main">
|
56
|
+
<div class="jougen">
|
55
|
-
|
57
|
+
<p>課金上限</p>
|
58
|
+
<p>
|
56
|
-
|
59
|
+
<output id="rslt" form="settei" class="jogen">0</output>円
|
60
|
+
</p>
|
57
|
-
|
61
|
+
</div>
|
58
62
|
</form>
|
59
|
-
|
63
|
+
<div class="honbun1">
|
60
|
-
|
64
|
+
<p>入力</p>
|
61
65
|
<div style="display:inline-flex">
|
62
|
-
|
66
|
+
<form id="f1">
|
63
|
-
|
67
|
+
<div class="moji">
|
64
|
-
|
68
|
+
<input type="date" name="day" id="day" class="day">
|
65
|
-
|
69
|
+
<input type="number" class="money" name="money" id="money">円
|
66
|
-
|
70
|
+
<input type="submit" value="入力" class="kettei1">
|
71
|
+
</div>
|
67
72
|
</form>
|
68
|
-
|
73
|
+
</div>
|
69
74
|
</div>
|
70
75
|
<div class="nokori">
|
71
76
|
<p>今月の残り課金額</p>
|
77
|
+
<p>
|
72
|
-
|
78
|
+
<output name="result" >0</output>円
|
79
|
+
</p>
|
73
80
|
</div>
|
74
81
|
<br>
|
75
|
-
<form id="f2">
|
82
|
+
<form id="f2">
|
76
|
-
<p>履歴</p>
|
83
|
+
<p>履歴</p>
|
77
|
-
<div class="rireki">
|
84
|
+
<div class="rireki">
|
78
|
-
<table id="t1" border="1">
|
85
|
+
<table id="t1" border="1">
|
79
|
-
<thead>
|
86
|
+
<thead>
|
80
|
-
<tr>
|
87
|
+
<tr>
|
81
|
-
<th hidden>id</th>
|
88
|
+
<th hidden>id</th>
|
82
|
-
<th width="30%">日付</th>
|
89
|
+
<th width="30%">日付</th>
|
83
|
-
<th width="50%">金額</th>
|
90
|
+
<th width="50%">金額</th>
|
84
|
-
<th width="20%">削除</th>
|
91
|
+
<th width="20%">削除</th>
|
85
|
-
</tr>
|
92
|
+
</tr>
|
86
|
-
</thead>
|
93
|
+
</thead>
|
87
|
-
<tbody id="list">
|
94
|
+
<tbody id="list"></tbody>
|
88
|
-
</tbody>
|
89
|
-
</table>
|
95
|
+
</table>
|
90
|
-
</div>
|
96
|
+
</div>
|
91
|
-
</form>
|
97
|
+
</form>
|
92
98
|
<input type="button" value="クリア" id="clear">
|
93
|
-
|
99
|
+
</div>
|
94
100
|
```
|
95
101
|
|
96
102
|
|
2
HTMLコードの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,7 +51,49 @@
|
|
51
51
|
});
|
52
52
|
|
53
53
|
```
|
54
|
+
```HTML
|
55
|
+
<p>課金上限</p>
|
56
|
+
<p><output id="rslt" form="settei" class="jogen">0</output>円</p>
|
57
|
+
</div>
|
58
|
+
</form>
|
59
|
+
<div class="honbun1">
|
60
|
+
<p>入力</p>
|
61
|
+
<div style="display:inline-flex">
|
62
|
+
<form id="f1">
|
63
|
+
<div class="moji">
|
64
|
+
<input type="date" name="day" id="day" class="day">
|
65
|
+
<input type="number" class="money" name="money" id="money"> 円
|
66
|
+
<input type="submit" value="入力" class="kettei1"></div>
|
67
|
+
</form>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
<div class="nokori">
|
71
|
+
<p>今月の残り課金額</p>
|
72
|
+
<p><output name="result" >0</output>円</p>
|
73
|
+
</div>
|
74
|
+
<br>
|
75
|
+
<form id="f2">
|
76
|
+
<p>履歴</p>
|
77
|
+
<div class="rireki">
|
78
|
+
<table id="t1" border="1">
|
79
|
+
<thead>
|
80
|
+
<tr>
|
81
|
+
<th hidden>id</th>
|
82
|
+
<th width="30%">日付</th>
|
83
|
+
<th width="50%">金額</th>
|
84
|
+
<th width="20%">削除</th>
|
85
|
+
</tr>
|
86
|
+
</thead>
|
87
|
+
<tbody id="list">
|
88
|
+
</tbody>
|
89
|
+
</table>
|
90
|
+
</div>
|
91
|
+
</form>
|
92
|
+
<input type="button" value="クリア" id="clear">
|
93
|
+
</div>
|
94
|
+
```
|
54
95
|
|
96
|
+
|
55
97
|
### 試したこと
|
56
98
|
|
57
99
|
データを全部消す前で一回切って新しく$(document).ready( function()で始めた
|
1
コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,51 +15,41 @@
|
|
15
15
|
```jquery
|
16
16
|
/* ローカルストレージ設定 */
|
17
17
|
var storage = localStorage;
|
18
|
-
|
18
|
+
|
19
19
|
/* 履歴を保存 */
|
20
|
-
$('#f1').on('submit', function (e){
|
20
|
+
$('#f1').on('submit', function (e) {
|
21
21
|
e.preventDefault()
|
22
22
|
var obj = {
|
23
|
-
|
23
|
+
day: $("#day").val(),
|
24
|
-
|
24
|
+
money: $("#money").val()
|
25
25
|
}
|
26
|
-
|
27
|
-
|
26
|
+
var i = Math.floor(Math.random() * 101);
|
28
|
-
|
27
|
+
storage.setItem("datalist" + i, JSON.stringify(obj));
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
|
32
|
-
|
29
|
+
/* 履歴を取得 */
|
33
|
-
|
30
|
+
var str = storage.getItem("datalist" + i);
|
34
|
-
|
31
|
+
var obj = JSON.parse(str);
|
35
|
-
|
36
|
-
|
37
32
|
window.location.reload();
|
33
|
+
$(document).ready(function () {
|
34
|
+
|
35
|
+
/* いったんデータを全部消す */
|
36
|
+
$("#list").empty();
|
37
|
+
|
38
|
+
/* 全ての要素を取得する */
|
39
|
+
for (i = 0; i < storage.length; i++) {
|
40
|
+
var key = storage.key(i)
|
41
|
+
storage.getItem("datalist" + i)
|
42
|
+
}
|
43
|
+
|
44
|
+
/* 登録されているkey, valueを順に取得して表示 */
|
45
|
+
var v_id = "datalist" + i;
|
46
|
+
var v_day = obj.day;
|
47
|
+
var v_money = obj.money;
|
48
|
+
if (v_day !== "" && v_money !== "") $('#t1 tbody').after($('<tr>').append($('<td>').html(v_day)).append($('<td>').text(v_money)).append($('<td>').html('<button class="remove">-</button>')));
|
49
|
+
$("#day,#money").val("");
|
50
|
+
});
|
51
|
+
});
|
38
52
|
|
39
|
-
$(document).ready( function(){
|
40
|
-
|
41
|
-
|
42
|
-
/* いったんデータを全部消す */
|
43
|
-
$("#list").empty();
|
44
|
-
|
45
|
-
/* 全ての要素を取得する */
|
46
|
-
for( i = 0; i < storage.length; i++ ){
|
47
|
-
var key = storage.key(i)
|
48
|
-
storage.getItem("datalist" + i)
|
49
|
-
}
|
50
|
-
|
51
|
-
/* 登録されているkey, valueを順に取得して表示 */
|
52
|
-
var v_id = "datalist" + i;
|
53
|
-
var v_day = obj.day;
|
54
|
-
var v_money = obj.money;
|
55
|
-
if (v_day !== "" && v_money !== "")
|
56
|
-
$('#t1 tbody').after($('<tr>').append($('<td>').html(v_day)).append($('<td>').text(v_money)).append($('<td>').html('<button class="remove">-</button>')));
|
57
|
-
$("#day,#money").val("");
|
58
|
-
|
59
|
-
});
|
60
|
-
});
|
61
|
-
|
62
|
-
|
63
53
|
```
|
64
54
|
|
65
55
|
### 試したこと
|