質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

454閲覧

登録ボタンを押す際に、重複のチェックのしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/08/07 03:15

編集2018/08/07 03:43

HTML

1<form id="myform" method="post"> 2 <table id="grid-command-buttons" class="table table-condensed table-hover table-striped"> 3 <thead> 4 <tr> 5 <th data-column-id="id" data-type="string" data-identifier="true" data-order="asc">コード</th> 6 <th data-column-id="namae">名称</th> 7 <th data-column-id="commands" data-formatter="commands" data-sortable="false">編集・削除</th> 8 </tr> 9 </thead> 10 <tbody> 11 <% 12 foreach (var _区 in _区分) 13 { 14 %> 15 <tr data-row-id="<%= _区["コード"] %>" class="modal-tr"> 16 <td><%= _区["コード"] %></td> 17 <td><%= _区["コード名"] %></td> 18 <td data-column-id="commands"></td> 19 </tr> 20 <% 21 } 22 %> 23 </tbody> 24 </table> 25</form> 26<div class="form-group text-center"> 27 <div class="col-lg-12"> 28 <button id="add" type="button" class="btn btn-info pause"><span class="glyphicon glyphicon-plus"></span>&nbsp;追加</button> 29 <button id="close" type="button" class="btn btn-info"><span class="glyphicon glyphicon-remove"></span>&nbsp;閉じる</button> 30 <br> 31 </div> 32</div>

HTML

1上記の「add」を押した際に出てくるモーダルウィンドウ 2 3<!--モーダル・ダイアログ--> 4<table class="table table-condensed table-bordered table-hover hos_table_data"> 5 <thead> 6 <tr class="active" id="datamodal"> 7 <th class="control-label"><span>コード</span></th> 8 <th class="control-label"><span>名称</span></th> 9 </tr> 10 </thead> 11 <tbody> 12 <tr style="height: 30px;" data-row-id="dialogid"> 13 <td class="add_id"> 14 <input type="text" class="form-control fm" onclick="this.select();" id="add_id" name="add_id" placeholder="00" /></td> 15 <td class="add_name"> 16 <input type="text" class="form-control fm" onclick="this.select();" id="add_name" name="add_name" placeholder="20字以内で入力してください" /></td> 17 </tr> 18 </tbody> 19</table> 20<div class="modal-footer"> 21 <div class="form-group text-center"> 22 <div class="col-lg-12"> 23 <button id="add_reg" type="button" class="btn btn-info pause"><i class="glyphicon glyphicon-list"></i>&nbsp;登録</button> 24 <button type="button" class="btn btn-info" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i>&nbsp;キャンセル</button> 25 <br> 26 </div> 27 </div> 28</div>

JavaScript

1var grid = 2 $("#grid-command-buttons").bootgrid({ 3 formatters: { 4 "commands": function (column, row) { 5 return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span>編集</span></button> " + 6 "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span>削除</span></button>"; 7 } 8 } 9 }); 10 11$("#add_reg").click(function (e) { 12 if ($(this).hasClass("disabled")) { 13 return; 14 } 15 $("span.label.label-warning").hide(); 16 17 var add_id = formValue.add_id(); if (add_id === false) { return false; } 18 var add_name = formValue.add_name(); if (add_name === false) { return false; } 19}); 20 21var formValue = { 22 // コード 23 add_id: (function () { 24 var temp = $("#add_id").val(); 25 if (!temp.match(/^[0-9]+$/)) { 26 alert("コードを数値で入力してください"); 27 return false; 28 } else if (!temp.match(/^[0-9][0-9]$/)) { 29 alert("コードは2桁入力して下さい"); 30 return false; 31 } //else if ($("#add_id") == row.id) { 32 // alert("コードが重複しています"); 33 //} 34 return temp; 35 }) 36};

C#

1private List<Dictionary<string, string>> __区分; 2public List<Dictionary<string, string>> _区分 3{ 4 get 5 { 6 if (__区分 == null) 7 { 8 var parameters = new Dictionary<string, string>(); 9 parameters.Add("種類", _LoginContext._種類); 10 var data = new List<Dictionary<string, string>>(); 11 using (var connection = new SqlConnection(_LoginContext._接続)) 12 { 13 connection.Open(); 14 using (var command = new SqlCommand()) 15 { 16 var method = MethodBase.GetCurrentMethod(); 17 var text = string.Format("/* [{0}.{1}] */", method.DeclaringType, method.Name) + @" 18 DECLARE @種類 INT; SET @種類 = <D:種類>; 19 select distinct 20 コード, 21 コード名 22 from 23 区分マスタ 24 order by 25 コード 26 "; 27 command.Connection = connection; 28 command.CommandText = hos.Utility.ReplaceSql(text, parameters); 29 command.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["SqlCommandTimeout"]); 30 hos.Utility.SqlLog(Context, command); 31 using (var reader = command.ExecuteReader()) 32 { 33 while (reader.Read()) 34 { 35 var dictionary = new Dictionary<string, string>(); 36 for (var i = 0; i < reader.FieldCount; i++) 37 { 38 var name = reader.GetName(i); 39 var value = reader.GetValue(i).ToString(); 40 dictionary.Add(name, value); 41 } 42 data.Add(dictionary); 43 } 44 } 45 } 46 } 47 __区分 = data; 48 } 49 return __区分; 50 } 51}

イメージ説明
↑の「追加」ボタンを押すと、

イメージ説明
↑のウィンドウが出る処理をしています。
「登録」ボタンを押す際に、
「コード」が既に登録してある数値が入っている場合に、(この場合は01~05)
「コードが重複しています」とアラートを出したいです。

こちらのコードは、C#からデータを取ってきています。

コードの重複のチェックの方法が分かりません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

「コードの重複のチェックの方法」は既に回答にあるとおり登録しようとしているコードでSELECTをかけていってその結果で判定できますが、
「画面遷移を伴わず」というのであればAjaxを利用すると良いです。

投稿2018/08/07 03:52

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/09 13:01 編集

この回答で低評価は何でしょうかね。最近何か個人的な恨みのようなもので低評価を定期的に押す人がいるような気がしてならない。 100%の回答かと言われればそうでもないとは思いますが、低評価押す程間違っているかというとどうなんでしょうか。しかも2日も前のことですし。 理由を書いてもらえれば回答修正対応するんですけど、何もコメントないと直しようがない。
guest

0

登録ボタンを押したイベントで、コードの重複をチェックして、重複していればアラートを出すコードを組めばよろしい。
で、この中のわからないところというのはどこでしょうか

投稿2018/08/07 03:20

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/07 03:22

「コードの重複をチェック」です。 申し訳ございません。言葉足らずでした。
y_waiwai

2018/08/07 03:45

登録されているコードを最初から最後まで順番に取り出してきて、同一かをみていく、でいいんじゃないでしょうか
退会済みユーザー

退会済みユーザー

2018/08/07 03:50

すみません。 そのやり方が分からないのです…。 JavaScriptの var formValueの「//」のところで if文とforeachを使えばいいとは思うのですが、 そこまでしか分からなくて…。
guest

0

ベストアンサー

JavaScriptにあったものをHTMLに移動し、
foreach文で繰り返し取り出したら出来ました。

HTML

1<script> 2 var formValue = { 3 // コード 4 add_id: (function () { 5 var temp = $("#add_id").val(); 6 if (!temp.match(/^[0-9]+$/)) { 7 alert("コードを数値で入力してください"); 8 return false; 9 } else if (!temp.match(/^[0-9][0-9]$/)) { 10 alert("コードは2桁入力して下さい"); 11 return false; 12 } else { 13 <% 14 foreach (var _区 in _区分) 15 { 16 %> 17 if (temp == <%= _区["コード"].ToString()%>) { 18 alert("コードが重複しています"); 19 return false; 20 } 21 <% 22 } 23 %> 24 } 25 return temp; 26 }) 27 }; 28 </script>

途中上手くいかなかったのですが、

HTML

1if (temp == <%= _区["コード"].ToString()%>) { 2 alert("コードが重複しています"); 3 return false; 4 }

のtempが「#add_id」で、tempに直したらすぐ出来ました。

投稿2018/08/13 11:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問