まず、ページの読み込み時に、デフォルトの透かしを次のように設定します。
function AddWatermarksDataEntry() {
initialWatermarks = new Array();
initialWatermarks.push(new Array("P1_BIRTHDATE_MASK", "__/__/____"));
initialWatermarks.push(new Array("P2_BIRTHDATE_MASK", "__/__/____"));
initialWatermarks.push(new Array("P1_VALIDFROM_MASK", "~#SF_DD/MM/YYYY~"));
initialWatermarks.push(new Array("P2_VALIDFROM_MASK", "~#SF_DD/MM/YYYY~"));
initialWatermarks.push(new Array("P1_IDENTITYDOCUMENTNUMBER", " "));
initialWatermarks.push(new Array("P2_IDENTITYDOCUMENTNUMBER", " ")); //***-*******-**
initialWatermarks.push(new Array("P1_VAT", "~#SF_9OR10_DIGIT~"));
initialWatermarks.push(new Array("P2_VAT", "~#SF_9OR10_DIGIT~"));
Watermarker(initialWatermarks);
}
後で、身分証明書の種類のドロップダウン値を調整するときは、次のようにします。
if(newIdentityDocumentType == "1")
{
ChangeIdentityDocumentNumberField($('#'+ whichPerson +'_IDENTITYDOCUMENTNUMBER'), $('#'+ whichPerson +'_NATIONALITY'), watermarkIdentityDocumentNumberBelgian, foreignPersonWaterMark, 14, 14);
$('#'+ whichPerson +'_IDENTITYDOCUMENTNUMBER').mask('999-9999999-99');
$('.'+ whichPerson + '.identityDocumentNumber').text('e.g. 123-456789112-34');
}
ユーザーが正しい身分証明書の種類を選択したかどうかを確認します。もしそうなら、入力フィールドのプロパティを変更してください。具体的には、透かしを調整してほしいです。
ChangeidentityDocumentField メソッドは、透かしを次のように変更するメソッドを呼び出します。
function ChangeIdentityDocumentNumberField(IdentityDocumentNumberField, NationalityField, WatermarkBelgian, WatermarkForeign, MaximumBelgian, MaximumForeign) {
if (NationalityField.val() == "0") {
//omitted code
ChangeWatermark(IdentityDocumentNumberField, WatermarkBelgian);
} else {
//omitted code
ChangeWatermark(IdentityDocumentNumberField, WatermarkForeign);
}
}
function Watermarker(newWatermark) {
for (i = 0; i < newWatermark.length; i++) {
$('#' + newWatermark[i][0]).Watermark(newWatermark[i][1]);
$('#' + newWatermark[i][0]).blur(function (item, watermark) {
return function () {
//if ($('#' + item).val() == '') {
$('#' + item).Watermark(watermark);
//};
};
} (newWatermark[i][0], newWatermark[i][1]));
};
}
この方法では、問題は、入力フィールドにいて外出したいときに、上記の関数が呼び出され、すべてがうまくいき、透かしが追加されていることがわかります(デバッグ中ですが、その後、突然、コードが次の場所にジャンプすると:
} (newWatermark[i][0], newWatermark[i][1]));
ウォーターマークがデフォルト値にリセットされました!?