Validation Rulesはあなたのために働くでしょうか?チェックボックスを考慮して動的に必要なフィールドごとに検証ルールを設定できます。これはサーバー側の検証を担当しますが、JavaScriptやjQueryなどのApex ClassesとExtension以外のものを使用してデータを送信する場合は、クライアント側を個別に管理する必要があります。
デフォルトのCSS Styling Visualforceを利用するには、ユーザーが値を入力せずに保存しようとすると、 "error"クラスを入力要素に追加します。ここで
は、私が(j$
としてnoConflictモードでのjQueryを使用して)、クライアント側の検証に近づくだろうかのコードスニペットです:
// check required fields
j$(RequiredFields).each(function(index,field)
{
if(!(field.val() && field.val() != "" && field.val() != "--None--")) { field.addClass("error"); RequiredFieldsInError.push(field); }
else { field.removeClass("error"); }
});
if(RequiredFieldsInError.length > 0)
{
var RequiredFieldLabels = [];
j$(RequiredFieldsInError).each(function(index,field){
var RequiredFieldLabel = j$("label[for$="+j$(field).attr('id')+"]").html().trim(); RequiredFieldLabels.push(RequiredFieldLabel);
field.after("<div id='"+field.attr("id")+"_error' class='errorMsg' >"+RequiredFieldLabel+" is Required.</div>");
});
if (RequiredFieldLabels.length > 1) {
RequiredFieldLabels[RequiredFieldLabels.length - 1] = "and " + RequiredFieldLabels[RequiredFieldLabels.length - 1];
}
j$("#ErrorSummary")
.html(RequiredFieldLabels.join(", ")+" "+(RequiredFieldLabels.length > 1 ? "are" : "is a")+" required field(s). ")
.css("color","#CC0000");
return;
}