2016-03-28 2 views
2

Ich bin ziemlich neu in der CRM-Entwicklung und ich versuche, mein Kontoformular anzupassen, um jedes Textfeld bei OnChange groß zu schreiben. Ich arbeite zur Zeit mit dieser Funktion, die ich online gefunden:Wie kann ich Feldtextwerte bei OnChange in MS CRM 2015 groß schreiben?

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

Allerdings, wenn ich einen Wert in meinem Test-Account ändere es mir sagt, dass die Methode getValue() wird nicht unterstützt. Alles, was ich gefunden habe, sagt mir, dass ich getValue() benutzen soll. Ich bin ratlos.

Jede Hilfe wäre willkommen. Dank

Antwort

0

ersetzen Linie

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

mit Linie

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

auch einen Screenshot geben Sie bitte das zeigt, wie Sie/diese Handler registrieren.

1

Wenn Sie erhalten, dass ein getValue Fehler nicht unterstützt wird, überprüfen Sie, ob der Wert für fieldName tatsächlich ein Feld im Formular ist. Am besten ist es die Verteidigung codieren, wie folgt aus:

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()); 
    } 
} 

Update: Wenn Sie Ihre Felder JS-Funktionen über das Formular-Editor verbinden, CRM übergibt ein Ereigniskontext als ersten Parameter. Hier ist, was der Code wie in diesem Fall aussehen würde:

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()); 
    } 
} 

Hier weitere Informationen über den Kontext: https://msdn.microsoft.com/en-us/library/gg328130.aspx

+0

Hallo und vielen Dank für Ihre Antwort. "überprüfen Sie, dass der Wert für Feldname tatsächlich ein Feld auf dem Formular ist" Was meinst du damit? Ich verstehe vielleicht nicht, wie der Code funktioniert, aber meinst du, dass ich den Namen des Feldes, mit dem ich arbeite, als Parameter für die Funktion angeben muss? Ich hatte angenommen, dass durch die Registrierung der Funktion mit dem spezifischen Feld onChange dieser Feldname automatisch den Feldnamen des Felds, für das er registriert ist, übernehmen würde. Wie auch immer, der obige Code gab mir den gleichen Fehler. –

+0

Gern geschehen. Meine Antwort wurde aktualisiert. – Polshgiant

Verwandte Themen