只允许字母和空格,并且每个单词都大写

Kil*_*isi 1 html javascript forms input

我只需要允许输入字母,我还需要使用 javascript 将每个单词的第一个字母大写。我有第一个在按键上工作,我想要第二个在 onblur 上工作,但我无法让它工作。如果我单独使用它,它可以正常工作。我尝试了很多东西,但我一定错过了一些小东西,我就是不知道它是什么。

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>
Run Code Online (Sandbox Code Playgroud)

爪哇脚本

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();});
}
Run Code Online (Sandbox Code Playgroud)

请协助

dfs*_*fsq 5

您需要重新分配输入的值,例如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();
  });
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" name="first_names" onkeypress="return isAlfa(event)" onblur="this.value = toTitleCase(this.value)">
Run Code Online (Sandbox Code Playgroud)