在JavaScript中首字母大写

时间:2017-04-05 10:15:02

标签: javascript

我这里有问题。我刚开始使用Yii2学习,我需要将我的报名表格first letters(它的姓名和姓氏)大写。我正在用JS做这个,但不知何故我的代码不起作用,它没有打印任何结果。有人可以帮我解决这个问题并告诉我我做错了什么吗?

这是我的代码:

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

1 个答案:

答案 0 :(得分:2)

我做了一些调整,我认为我能让它发挥作用:

首先,命名你的js' class'以大写字母开头。这个变量声明var entryForm = new entryForm(会影响该类的前一个声明'同名。

其次,我将$(document).ready函数放在了类之外。

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

 })