特定フィールドの値を上限値として設定したい

表題の通り、特定の数値フィールドへ入力した数値を上限として設定し、他の数値フィールドの入力を一部制限したいと考えています。

 

(function () {
"use strict";
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function (event){
var record = event.record;
var p1 = record["購入価格"].value;
var p2 = record["購入予定価格"].value;

// 購入価格が購入予定価格の金額を上回るとエラーを出す
if (p1 > p2) {
event.record.購入価格.error = '予定の金額を上回っています!';
}

return event;

});

})();

 

以上のようなコードを入れてみたのですが、上手く動作しません。

 

仮に[購入予定価格]フィールドへ1500と入力してある場合、

[購入価格]フィールドに10000と入力しても、保存が出来てしまいます。1501・5000・3500等を入力した際はきちんとエラーが表示されました。

逆に[購入価格]フィールドへ666・950・20等を入力するとエラーとなり、保存できません。ただ、10や100は問題なく保存できます…。

 

初歩的な見落としや間違いをしている気がするのですが、まだまだ勉強不足で自力で解決できず、質問させて頂きました。

ご指導頂ければ幸いです、宜しくお願い致します。

record[“購入価格”].value は、数値項目だと思いますが、中身を確認すると文字列になっています。

IFも文字列比較していますので期待している結果になりません。

var p1 = Number(record[“購入価格”].value); 等で数値変換しましょう。

 

ありがとうございます、お教え頂いた内容できちんと動作できました!!

何故期待している結果にならないのか?もきちんと理解できました。

本当にありがとうございます!!!