2016-03-28 8 views
2

私はCRM開発がかなり新しく、私はonChangeのテキストフィールドを大文字にするために自分のアカウントフォームをカスタマイズしようとしています。私は私のテストアカウントに値を変更すると、それは法のgetValue()がサポートされていないことを私に伝えます、しかしMS CRM 2015のOnChangeでフィールドテキスト値をどのように大文字にすることができますか?

function UpperCaseField(fieldName) 
{ 
var value = Xrm.Page.getAttribute(fieldName).getValue(); 
if (value != null) 
{ 
    Xrm.page,getAttribute(fieldName).setValue(value.toUpperCase()); 
} 
} 

:私は現在、私はオンラインを見つけたこの機能で働いています。私が見つけたものはすべて、getValue()を使用するように指示します。 Imを失った。

ご協力いただければ幸いです。 おかげ

答えて

0

ラインにライン

Xrm.Page.getAttribute(fieldName).setValue(value.toUpperCase()); 

Xrm.page,getAttribute(fieldName).setValue(value.toUpperCase()); 

を交換しても、あなたがこのハンドラを登録/使用方法を示してスクリーンショットをご提供ください。

1

getValueがサポートされていないというエラーが表示される場合は、fieldNameの値が実際にフォームのフィールドであることを再度確認します。それはこのように、ディフェンシブにコーディングするのが最善です:

function UpperCaseField(fieldName) 
{ 
    var attr = Xrm.Page.getAttribute(fieldName); 
    if (!attr) { 
     console.log(fieldName + " not found"); 
     return; 
    } 

    var value = attr.getValue(); 
    if (value != null) 
    { 
     attr.setValue(value.toUpperCase()); 
    } 
} 

更新:あなたはフォームエディタを経由してJS関数に自分のフィールドを接続すると、CRMは、最初のパラメータとしてイベント・コンテキストを渡します。こんにちはhttps://msdn.microsoft.com/en-us/library/gg328130.aspx

+0

、そしてあなたの答えをありがとう:

function UpperCaseField(context) { var fieldName == context.getEventSource().getName(); var attr = Xrm.Page.getAttribute(fieldName); if (!attr) { console.log(fieldName + " not found"); return; } var value = attr.getValue(); if (value != null) { attr.setValue(value.toUpperCase()); } } 

は、ここでのコンテキストについての詳細情報です:ここでのコードは、その場合には次のようになります。 "fieldNameの値が実際にはフォーム上のフィールドであることを再確認してください。" これはどういう意味ですか?私はコードがどのように動作するのか誤解しているかもしれませんが、私が関数のパラメータとして扱っているフィールドの名前を置かなければならないということを意味していますか?私は、特定のフィールドonChangeを持つ関数を登録することによって、fieldNameが登録されているフィールドのフィールド名を自動的に取得すると仮定していました。 どちらの方法でも、上記のコードは私に同じエラーをもたらしました。 –

+0

ようこそ。私の答えを更新しました。 – Polshgiant

関連する問題