2012-04-17 6 views
0

Salesforceでカスタムフォームを使用しています。特定のチェックボックスをオンにすると、オプションのフィールドを必須フィールドに動的に変換する際の障害が発生しました。例えばSalesforce:条件付きで必要なApexフォームフィールドの作成

ユーザーがチェックした場合、電子資金はEFTに関連するすべてのフィールドは、次に有効とアペックス(オプションではないのように)必要なフィールドとしてそれらを表示する必要があるとなるべき、支払いのためオプションを転送します。

現在、jQueryを使用してフィールドを有効にしていますが、フィールドをApex必須フィールドに変更する方法の例が見つかりません。

この問題を解決する上で、ご協力いただきありがとうございます。

答えて

0

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; 
} 
関連する問題