2016-05-22 2 views
1

Мне нужно только разрешить набирать буквы, и мне также нужно использовать первую букву каждого слова, используя javascript. У меня есть первый бит, который работает на клавиатуре, я хочу, чтобы вторая работала, но я не могу заставить его работать. Он работает нормально, если я использую его сам по себе. Я пробовал кучу вещей, но мне, должно быть, недостает чего-то маленького, я просто не могу понять, что это такое.Разрешайте только буквы и пробелы и заглавные буквы каждого слова

HTML

<tr> 
<td> 
<input type="text" name="first_names" onkeypress="return isAlfa(event)" onblur="toTitleCase()"> 
</td> 
<td> 
<input type="text" name="last_names" onkeypress="return isAlfa(event)" onblur="toTitleCase()"> 
</td> 
</tr> 

JAVASCRIPT

function isAlfa(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) { 
     return false; 
    } 
    return true; 
} 

function toTitleCase(str) 
{ 
    return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
} 

Пожалуйста помогите

ответ

4

Вам нужно переназначить значение ввода, например, как onblur="this.value = toTitleCase(this.value)":

function isAlfa(evt) { 
 
    evt = (evt) ? evt : window.event; 
 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
 
    if (charCode > 32 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) { 
 
    return false; 
 
    } 
 
    return true; 
 
} 
 

 
function toTitleCase(str) { 
 
    return str.replace(/\w\S*/g, function(txt) { 
 
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 
 
    }); 
 
}
<input type="text" name="first_names" onkeypress="return isAlfa(event)" onblur="this.value = toTitleCase(this.value)">

+0

Совершенная, будет принимать ответ в 8 минут, ура – Kilisi