如何使用javascript验证预定义值
我在html中有一个输入文本框,我想允许用户只输入“Y”或“N”,如果他试图输入任何其他字符,则应显示一个警报对话框。那么有人能帮我进入dis吗?假设您能够通过ID获取HTML元素,这将检查#myInput元素,并且只接受Y或N如何使用javascript验证预定义值,javascript,Javascript,我在html中有一个输入文本框,我想允许用户只输入“Y”或“N”,如果他试图输入任何其他字符,则应显示一个警报对话框。那么有人能帮我进入dis吗?假设您能够通过ID获取HTML元素,这将检查#myInput元素,并且只接受Y或N if ((document.getElementById('myInput').value == 'Y') || (document.getElementById('myInput').value == 'N')) { // Do stuff if it
if ((document.getElementById('myInput').value == 'Y') ||
(document.getElementById('myInput').value == 'N')) {
// Do stuff if it's correct.
} else {
alert("You're doing it wrong!");
}
jQuery版本
$('input').keypress( function( e ){
$(this).val('');
var code = e.which || e.keyCode ;
if ( !( code == 89 || code == 121 ||
code == 78 || code == 110 ) ){
alert('you entered wrong key');
e.preventDefault();
}
});
在jsfiddle上检查它
内联javascript版本
<input id="keypress" onkeypress="return allowYN( this, event );" />
您可以为删除键(46)、退格键(8)添加异常…
按下功能键(evt)
{
var theEvent=evt | | window.event;
var k=theEvent.keyCode | | theEvent.which;
如果(k==89 | | k==78 | | k==8 | | k==46)
返回true;
否则{
提醒(“您的信息”);
evt.preventDefault();
返回false;
}
}
如前所述,最好的选择是使用单选按钮:
<input type="radio" name="yn" value="Y">Y<br>
<input type="radio" name="yn" value="N">N<br>
Y
N
然后将其中一个设置为选中,或者在提交时选中一个。或者,您可以使用脚本化输入元素,但这是不明智的:
<script>
function validateYN(element) {
var errNode = document.getElementById(element.id + '_err');
if(/^[YN]$/.test(element.value)) {
errNode.innerHTML = '';
} else {
errNode.innerHTML = "You must enter Y or N";
}
}
</script>
Please enter Y or N: <input name="foo" id="foo" onchange="validateYN(this);"
onblur="validateYN(this);">
<span id="foo_err"></span>
函数validateYN(元素){
var errNode=document.getElementById(element.id+''u err');
if(/^[YN]$/.test(element.value)){
errNode.innerHTML='';
}否则{
errNode.innerHTML=“必须输入Y或N”;
}
}
请输入Y或N:
您也可以试试这个
$("input").live('keypress', function(e) {
if!( code == 89 || code == 121 ||
code == 78 || code == 110 ) ) {
e.preventDefault();
}
else //your code
您可能想看看jQuery的函数,用Javascript验证这一点。提交表单时,您仍然需要在服务器端验证输出。为什么不使用下拉列表或单选按钮?使用onkeypress=“javascript_function_to_validate()”
element.onkeydown=function(){if(!this.value.trim().match(/(Y | N)/)警报('nope');返回false;}
@TamilSelvan-您不应该建议使用内联事件处理程序。这是一个糟糕的做法。一个指向keycode表的链接比一次给他提供一个键的代码要好…@RobG-是的。。。我想我知道这是一个粗略的,主观的联系。虽然我认为大家都认为在线监听器是不好的做法。
<script>
function validateYN(element) {
var errNode = document.getElementById(element.id + '_err');
if(/^[YN]$/.test(element.value)) {
errNode.innerHTML = '';
} else {
errNode.innerHTML = "You must enter Y or N";
}
}
</script>
Please enter Y or N: <input name="foo" id="foo" onchange="validateYN(this);"
onblur="validateYN(this);">
<span id="foo_err"></span>
$("input").live('keypress', function(e) {
if!( code == 89 || code == 121 ||
code == 78 || code == 110 ) ) {
e.preventDefault();
}
else //your code