2017-04-05 3 views
0

Ich habe ein Problem hier. Ich fing gerade an, mit Yii2 zu lernen, und ich muss first letters meines Eintragsformulars (sein Name und Nachname) groß schreiben. Ich mache das mit JS, aber irgendwie funktioniert mein Code nicht und es hat keine Ergebnisse gedruckt. Könnte jemand mir helfen, dieses Problem zu lösen und mir sagen, was ich falsch mache?Großbuchstaben Anfangsbuchstaben in JavaScript

Hier ist mein Code:

function entryForm(name, surname) { 
this.name = $(name); 
this.surname = $(surname); 
var self = this; 

/* 
* Capitalizes first letter of users entered name and surname 
* 
* @param string input 
*/ 
this.capitalizeName = function(input) { 
var name = input.val(); 
name = name.toLowerCase().replace(/(^|\s)[a-z]/g, function(letter) { 
    return letter.toUpperCase(); 
}) 
input.val(name); 
} 
var entryForm = new entryForm('#employee-name', '#employee-surname'); 

$(document).ready(function() { 
/* 
* Executes named function 
*/ 
    $('#employee-name, #employee-surname').change(function() { 
     entryForm.capitalizeName($(this)); 
    }) 
}) 
} 
+0

können Sie verwenden Lösung von http://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript – Bizley

+0

Do Sie müssen den 'großgeschriebenen' Text anzeigen oder es ist nicht notwendig (es ist genug, dass es in der DB auf diese Weise gespeichert wird)? – gmc

+0

@gmc Ich muss den Namen mit Großbuchstaben automatisch anzeigen. Ja, ich könnte dies mit dem Modell tun, indem ich die Regel hinzufüge, aber anstatt es automatisch zu ersetzen, würde es die Buchstaben nach dem Klicken auf "Erstellen" -Schaltfläche ersetzen. – user7435747

Antwort

2

ich ein paar Anpassungen gemacht hatte, dass ich glaube, ich würde es funktioniert:

Zuerst Ihre js ‚Klasse‘ Name mit einem Groß starten. Diese Variablendeklaration var entryForm = new entryForm( schattiert die vorherige Deklaration der 'Klasse' mit dem gleichen Namen.

Zweitens würde ich die $(document).ready Funktion außerhalb der Klasse setzen.

function EntryForm(name, surname) { 
    this.name = $(name); 
    this.surname = $(surname); 
    var self = this; 

    /* 
    * Capitalizes first letter of users entered name and surname 
    * 
    * @param string input 
    */ 
    this.capitalizeName = function(input) { 
     var name = input.val(); 
     name = name.toLowerCase().replace(/(^|\s)[a-z]/g, function(letter) { 
      return letter.toUpperCase(); 
     }) 
     input.val(name); 
    } 
} 

$(document).ready(function() { 
/* 
* Executes named function 
*/ 
    $('#employee-name, #employee-surname').change(function() { 
     var entryForm = new EntryForm('#employee-name', '#employee-surname'); 
     entryForm.capitalizeName($(this)); 
    }) 

}) 
Verwandte Themen