# 同条件でもプログラムが毎回同じ挙動をしない

**URL:** <https://community.cybozu.dev/t/topic/342>\
**Category:** kintone 開発相談\
**Created:** [2017 年 4 月 20 日午前 5:22 UTC](https://community.cybozu.dev/t/topic/342 "2017-04-20T05:22:19Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1502](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@Legacy\_Account1502](https://community.cybozu.dev/u/Legacy_Account1502)\
**Post date:** [2017 年 4 月 20 日午前 5:22 UTC](https://community.cybozu.dev/t/topic/342/1 "2017-04-20T05:22:19Z")

</div>

いつもお世話になっております。

現在，とあるアプリで”レコード新規作成時”，”レコード編集時”にAというフィールドが空で，かつもう一つのフィールドが空だった場合エラーを吐き出すというプログラムを書いています。一応完成したのですが，ちゃんと稼働する時と稼働せずエラーを吐き出さずに保存できてしまうときがあります。

全く原因がわからず，困っております。

何かご存知な方からご意見をいただけますと幸いです。

よろしくお願いいたします。

下記，プログラムです。

&nbsp;

(function() {

&nbsp;“use strict”;  
&nbsp;// 保存ボタンをクリックしたとき(編集完了・新規作成)  
&nbsp; kintone.events.on([‘app.record.create.submit’, ‘app.record.edit.submit’], function(event) {

&nbsp;&nbsp;&nbsp; //レコード一覧取得  
&nbsp;&nbsp;&nbsp; var hako = event.record;

&nbsp;&nbsp;&nbsp; if(hako[‘innaimo’][‘value’] != undefined){

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(hako[‘mokinyu’][‘value’] == undefined){

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.alert(“名前を選択してください”);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hako[‘mokinyu’][‘error’] = ‘名前を選択してください’;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(hako[‘status’][‘value’] == undefined){

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.alert(“ステータスを選択してください”);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hako[‘status’][‘error’] = ‘ステータスを選択してください’;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

});//eventのおしまい

})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1557](https://avatars.discourse-cdn.com/v4/letter/l/49beb7/32.png) [@Legacy\_Account1557](https://community.cybozu.dev/u/Legacy_Account1557)\
**Post date:** [2017 年 4 月 20 日午前 5:34 UTC](https://community.cybozu.dev/t/topic/342/2 "2017-04-20T05:34:23Z")

</div>

Hiroさん

&nbsp;

こんにちは。if分の判定でundefinedが正しく評価できていないのかもしれません。

あと return event; しないとせっかく’error’を設定したrecord情報が反映されずに正常動作として処理されてしまいます。

以下のコードで一度試してもらえますか。 (インデントが全角スペースなので半角スペースに置換してください)

&nbsp;

```
(function() {

  "use strict";
  // 保存ボタンをクリックしたとき(編集完了・新規作成)
  kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(event) {
    //レコード一覧取得
    var hako = event.record;
    if (hako['innaimo']['value']) {
      if (!hako['mokinyu']['value']) {
        window.alert("名前を選択してください");
        hako['mokinyu']['error'] = '名前を選択してください';
      }
      if (!hako['status']['value']) {
        window.alert("ステータスを選択してください");
        hako['status']['error'] = 'ステータスを選択してください';
      }
    }
    return event;
  });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1502](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@Legacy\_Account1502](https://community.cybozu.dev/u/Legacy_Account1502)\
**Post date:** [2017 年 4 月 20 日午前 6:02 UTC](https://community.cybozu.dev/t/topic/342/3 "2017-04-20T06:02:27Z")

</div>

カキ氷様へ

&nbsp;

いつもお世話になっております。

迅速なコメントをいただきまことにありがとうございます。

return event を完全に失念しておりました…。

また，undefinedが正確に取れない可能性があるというのは初めて知りました。

大変勉強になりました。

誠にありがとうございます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1557](https://avatars.discourse-cdn.com/v4/letter/l/49beb7/32.png) [@Legacy\_Account1557](https://community.cybozu.dev/u/Legacy_Account1557)\
**Post date:** [2017 年 4 月 20 日午前 6:13 UTC](https://community.cybozu.dev/t/topic/342/4 "2017-04-20T06:13:13Z")

</div>

Hiroさん

&nbsp;

\>undefinedが正確に取れない可能性

補足しますと、今回のif文ではhako[‘mokinyu’][‘value’]がundefiedじゃなく、空文字"" だった場合にfalseとなるので、エラーの分岐に入っていなかったようです。

if(value == undefined){} // value が&nbsp;undefinedのときのみtrueで null、空文字"" の場合はfalse&nbsp;

if(!value){} //&nbsp;value が&nbsp;undefined、null、空文字""、0 &nbsp;の場合はtrueで それ以外はfalse

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1502](https://avatars.discourse-cdn.com/v4/letter/l/c89c15/32.png) [@Legacy\_Account1502](https://community.cybozu.dev/u/Legacy_Account1502)\
**Post date:** [2017 年 4 月 20 日午前 6:30 UTC](https://community.cybozu.dev/t/topic/342/5 "2017-04-20T06:30:18Z")

</div>

カキ氷さま

&nbsp;

ありがとうございます！

わかりやすいご説明のおかげで理解できました！
