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

回答編集履歴

1

追記

2018/12/12 04:53

投稿

退会済みユーザー
answer CHANGED
@@ -14,4 +14,45 @@
14
14
 
15
15
  自分が思いつくのは、例えば setTime(tb1, tb2) というような JavaScript のメソッドを定義。「始業時刻」テキストボックスの id を tb1 に、「終業時刻」テキストボックスの id を tb2 に設定。それを button の onclick 属性に設定。ボタンクリックで setTime(tb1, tb2) を起動。引数 tb1, tb2 に与えられた id から対象のテキストボックスを取得。テキストボックスの value 属性に、それぞれ 9:00、18:00 を設定・・・というものです。
16
16
 
17
- 問題は id の取得ですが、MVC4 以降には Html ヘルパーに IdFor メソッドが用意されていて、それを使えば可能だと思います。
17
+ 問題は id の取得ですが、MVC4 以降には Html ヘルパーに IdFor メソッドが用意されていて、それを使えば可能だと思います。
18
+
19
+ **【追伸】**
20
+
21
+ 迷走しそうな雰囲気なので、そうならないようサンプルを書いておきます。
22
+
23
+ Html ヘルパー IdFor を使ってテキストボックス ```<input type="text" id="xxxxx" ... />``` の id 属性の値 xxxxx を取得し、当該テキスト value 属性の値を書き換えるサンプルを書いておきます。
24
+
25
+ View のコードにだけ以下のように手を加えれば OK です。
26
+
27
+ 以下の @model... と IdFor メソッドの引数は、前のスレッドの私のサンプルの Model ベースです。そこは質門者さんのケースに合わせて書き換える必要があります。(IdFor の引数は当該テキストボックスの EditorFor の第 1 引数と同じで良いと思います)
28
+
29
+ ```
30
+ @model Mvc5App.Models.KintaiModel
31
+
32
+ ・・・中略・・・
33
+
34
+ <button type="button"
35
+ onclick="setRegularWorkTime('@Html.IdFor(model => model.Kintais[i].Open)', '@Html.IdFor(model => model.Kintais[i].Close)')"
36
+ class="btn btn-primary">
37
+ 定時
38
+ </button>
39
+
40
+ ・・・中略・・・
41
+
42
+ @section Scripts {
43
+ @Scripts.Render("~/bundles/jqueryval")
44
+
45
+ <script type="text/javascript">
46
+ //<![CDATA[
47
+ function setRegularWorkTime(from, to) {
48
+ document.getElementById(from).value = "9:00";
49
+ document.getElementById(to).value = "18:00";
50
+ }
51
+ //]]>
52
+ </script>
53
+ }
54
+ ```
55
+
56
+ 上の JavaScript のコードにより、以下の画像の赤枠で囲った部分が示すように、[定時]ボタンクリックで open, close テキストボックスの値が 9:00, 18:00 に書き換えられています。
57
+
58
+ ![イメージ説明](bfd468e39fb3768cbd72cc3dd20d4b17.jpeg)