数字のみを受け入れるフィールドを持つ appian フォームがあります。送信ボタンとキャンセルボタンがあります。
ただし、検証に失敗したときにボタンを元の値に戻すことはできません。
送信ボタンをクリックすると、値が数値でない場合、エラー メッセージが表示され、元の値が復元されます。キャンセルボタンをクリックすると元の値に戻ります。
これは私がそのフィールドで使用している検証です:
validation: if(typeof(local!myLocalObject.numField1)<>1,
"This field must have a numeric value",
null
)
キャンセルボタンには次のコードが含まれています。
saveInto: {
...
a!save(local!myLocalObject.numField1, ri!retrievedFromDB.numField1),
...
}
保存ボタンには次のコードが含まれています。
saveInto: {
...
if(typeof(local!myLocalObject.numField1)<>1,
a!save(local!myLocalObject.numField1, ri!retrievedFromDB.numField1),
null
)
...
}
これが起こることです:
数値のフィールドがあり、編集可能にします:
値をテキストに変更して送信をクリックすると、
元の値を復元し、エラーを表示する必要があります。
しかし、何が起こるかというと、フィールドが空白になり、値がまったくなく、エラー メッセージも表示されません。その後、DB にnullとして保存できますが、これは間違いです。
(注、これは、そのフィールドをクリックしたときにも発生します)
フィールド タイプはtextFieldで、その値とsaveintoは両方ともlocal!myLocalObject.numField1に設定されています。
代わりにintegerFieldを使用しようとしましたが、保存をキャンセルすると、元の値を復元できません。
エラーメッセージと間違った値を消すには、ページをリロードする必要があります。