私はフォームを持っており、uppercase_valueというフィールドがあります。そのフィールドでは、大文字のみの値が必要なため、入力変換に@UpperCase(uppercase_value)を入れます。編集ボックス内の大文字
xpageには、編集ボックスとボタンがあります。編集ボックスは単純なデータバインディング(uppercase_valueにバインド)を使用し、ボタンは値を保存するためのものです。
私はボタンが重複値または空の値を保存しないようにしなければなりません。私は編集ボックスの近くに計算フィールドを置き、ボタンに次のコードを入れます。
//get the value from the edit box
var newvalue = getComponent("inputText1").getValue();
//if edit box is empty, show message in the computed field
if(newvalue =="" || newvalue ==null)
{
getComponent("computedField1").setValue("The field is empty");
}
else
{
//check the value whether it is already existed or not
//use @DbLookup to find, newvalue is the keyword
var existedvalue = @DbLookup(@DbName(),"myview", newvalue,3);
//if the newvalue is same as the existedvalue, show message in the computed field
if(newvalue == existedvalue)
{
getComponent("computedField1").setValue("Duplicate value");
}
else
{
document1.save();
}
}
Iコードを実行する、私は予想通り、それが大文字でそれを保存し、小文字で値を入力し(例えば、私が編集ボックスにABCを入力し、その値がABCで返します)。 xpageをリフレッシュして同じ値をもう一度入力すると、値を保存することができ、ビューに2つの同じ値があることがわかります。
@DbLookupのビューを2回確認すると、最初の列がソートされるので、@DbLookupが正常に動作することを確信しています。
重複した値を保存できる理由は、実行形式の検証であると私は文書保存で選択します。したがって、編集ボックスに値を入力した後に保存ボタンをクリックするたびに、値がuppcaseに変更されてから保存されます。したがって、ページを更新して再び値を入力すると、@DbLookupは新しい値であると考えるので、小文字で入力するので、値が保存され、ビューに重複した値があります。
しかし、私が文書をオンに変更すると、フォームの検証が実行されたときに読み込まれます。それは動作しません。つまり、値を大文字に変更せず、小文字の値を保存します。
実際、私は大文字への変更について別の考えを持っています。エディットボックスでonkeypressイベントを使うつもりです。編集ボックスに入力値が入力されているときにユーザーがキャップロックボタンをオンにしようとしました
私はこれに続いてtableをonkeypressイベントに入れます。
if (thisEvent.keyCode == 20)
{
//alert("caps lock button pressed");
return true; // not work, still can type lowercase
// event.returnValue = true; // cannot type anything
}
else
{
return false;
// event.returnValue = false; // cannot type anything
}
ただし、正しく動作しないため、編集ボックスに小文字を入力できます。
大文字で値を保存し、重複する値を保存しないようにするにはどうすればよいですか?
優れた答えをありがとう!私の問題を解決する方法はたくさんあることを教えてください。 – beginner
あなたのオプションを試しました。しかし、私はこれらのオプションを使用しようとするといくつか質問があります、私はこのポストでお願いしますか? (私はxpagesが弱いことを知っています.xpageについてもっと知ることができれば、より多くのxpageアプリケーションを開発したいと思っています) – beginner
XPages Slackチャンネルがもっと適切かもしれません。https://xpages-slack.herokuapp.com/ –