0

多数 (20 以上) のフィールドが占めるセクションを含むタブがあります。それらはすべてチェックボックスであり、そのうちの 1 つは「N/A」の選択肢です。少なくとも 1 つの選択が確実に行われるようにする JavaScript の簡単な書き方を誰でも提案できますか、そうでない場合は、N/A がチェックされている場合にのみ、ユーザーがこのセクションを通過できるようにします。すべてのチェックボックスの値をチェックしないようにしています。助言がありますか?

ありがとう

4

2 に答える 2

1

これは、Xrm.Page オブジェクトの既存の関数の一部を使用する場合にすぎないと思います。多数の属性を一度に操作するための関数がいくつかあります。どのように行うにしても、すべてのフィールドをチェックする必要がありますが、非常に簡潔な方法で行うことができます。

次のようなコードを使用して、OnSave イベントを追加することをお勧めします。

//we want to make sure that at least one of these is populated
//new_na is the na field
//the others are the possible choices
var requiredFields = ["new_na", "new_field1", "new_field2", "new_field3"];

//this loops through every attribute on the page
Xrm.Page.data.entity.attributes.forEach(function (attribute, index) {

    //this will track if at least one field was set
    bool atLeastOneSet = false;

    //see if the requiredFields array contains this field
    if (requiredFields.indexOf(attribute.getName()) != -1) {

        //if it is required, check the value
        if(attribute.getValue()) {

            //if it set update the bool flag
            atLeastOneSet = true;
        }
    }

    //finished processing all fields, if atLeastOneSet is false no field has been set
    if(!atLeastOneSet) {

        //If this code is used in an on save event this will prevent the save
        Xrm.Page.context.getEventArgs().preventDefault();

        //Give the user some message
        alert("At least one field must be populated");
    }
});

テストされていないコードですが、うまくいけば、進行方法についての良いアイデアが得られるはずです。

于 2013-06-06T07:52:27.430 に答える