Luc*_*ucy 11 html javascript validation onkeypress
我想只输入a中的字符值<textarea>
和另一个中的数值.我已经能够创建一个JavaScript函数,它只允许在<textarea>
使用中输入数值onkeypress
.这适用于Firefox和Chrome.
对于字母表,我正在使用windows.event
属性创建另一个JavaScript函数.唯一的问题是这仅适用于Chrome,而不适用于Firefox.
我想知道如何只允许使用onkeypress
事件输入字母,因为只用于输入数字值?
function isNumberKey(evt){ <!--Function to accept only numeric values-->
//var e = evt || window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode != 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}
function ValidateAlpha(evt)
{
var keyCode = (evt.which) ? evt.which : evt.keyCode
if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
<label for="cname" class="label">The Risk Cluster Name</label>
<textarea id="cname" rows="1px" cols="20px" style="resize:none" placeholder="Cluster Name" onKeyPress="return ValidateAlpha(event);"></textarea>
<br>
<label for="cnum">Risk Cluster Number:</label>
<textarea id="cmun" rows="1px" cols="12px" style="resize:none" placeholder="Cluster Number" onkeypress="return isNumberKey(event)"></textarea>
Run Code Online (Sandbox Code Playgroud)
如果您不需要支持旧浏览器,我会使用该input
事件.这样,如果用户将文本粘贴到文本中,您还可以捕获非字母字符textarea
.
我稍微清理了你的HTML.最重要的变化是关于cname
和的事件cnum
.请注意,两种情况下的事件都已更改为oninput
.
<label for="cname" class="label"> The Risk Cluster Name</label>
<textarea id="cname" rows="1" cols="20" style="resize:none" placeholder="Cluster Name" oninput="validateAlpha();"></textarea>
<label for="cnum">Risk Cluster Number:</label>
<textarea id="cmun" rows="1" cols="12" style="resize:none" placeholder="Cluster Number" oninput="isNumberKey();"></textarea><br /><br /><br />
Run Code Online (Sandbox Code Playgroud)
假设您只想cname
接受字母表中的字符并且cnum
只接受数字,那么您的JavaScript应该是:
function validateAlpha(){
var textInput = document.getElementById("cname").value;
textInput = textInput.replace(/[^A-Za-z]/g, "");
document.getElementById("cname").value = textInput;
}
function isNumberKey(){
var textInput = document.getElementById("cmun").value;
textInput = textInput.replace(/[^0-9]/g, "");
document.getElementById("cmun").value = textInput;
}
Run Code Online (Sandbox Code Playgroud)
此代码使用正则表达式,一种匹配字符串模式的方法.
function lettersOnly()
{
var charCode = event.keyCode;
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8)
return true;
else
return false;
}
<input type="text" name="fname" value="" onkeypress="return lettersOnly(event)"/>
Run Code Online (Sandbox Code Playgroud)
您好,尝试下面的代码,它在所有浏览器中都适用于我,它允许数字和一些特殊字符,例如,.+-():在文本框中使用如下
<asp:Textbox Id="txtPhone" runat="server" onKeyPress="return onlyNumbersandSpecialChar()"> </asp:Textbox>
Run Code Online (Sandbox Code Playgroud)
function onlyNumbersandSpecialChar(evt) {
var e = window.event || evt;
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode > 107 || charCode > 219 || charCode > 221) && charCode != 40 && charCode != 32 && charCode != 41 && (charCode < 43 || charCode > 46)) {
if (window.event) //IE
window.event.returnValue = false;
else //Firefox
e.preventDefault();
}
return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71036 次 |
最近记录: |