我这里有问题。我刚开始使用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));
})
})
}
答案 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));
})
})