我在html中有一个输入文本框,我想让用户只是' Y'或者' N'如果他试图输入任何其他字符,那么它应该显示一个警告对话框。那么任何人都可以帮我解决问题吗?
答案 0 :(得分:2)
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 http://jsfiddle.net/TTgKF/
上查看内联javascript版
<input id="keypress" onkeypress="return allowYN( this, event );" />
和allowYN定义为
function allowYN( el, event) {
event = event || window.event;
var charCode = (event.which) ? event.which : event.keyCode;
el.value = '';
isYN = (charCode == 89 || charCode == 121 ||
charCode == 78 || charCode ==110 );
if ( !isYN ) {
alert('you entered wrong key');
}
return isYN;
}
您可以为删除键( 46 ),退格键( 8 )添加例外..
答案 1 :(得分:0)
假设您能够通过ID获取HTML元素,这将检查#myInput元素并仅接受Y或N.
if ((document.getElementById('myInput').value == 'Y') ||
(document.getElementById('myInput').value == 'N')) {
// Do stuff if it's correct.
} else {
alert("You're doing it wrong!");
}
答案 2 :(得分:0)
<html>
<head>
<script type="text/javascript">
function keyPressed(evt)
{
var theEvent = evt || window.event;
var k = theEvent.keyCode || theEvent.which;
if(k == 89 || k == 78 || k == 8 || k == 46)
return true;
else{
alert("Your Message");
evt.preventDefault();
return false;
}
}
</script>
</head>
<body>
<input type="text" onkeydown="keyPressed(event)" />
</body>
</html>
答案 3 :(得分:0)
如前所述,最好的选择是使用单选按钮:
<input type="radio" name="yn" value="Y">Y<br>
<input type="radio" name="yn" value="N">N<br>
然后将其中一个设置为已选中,或者选中提交选中的一个。或者,您可以使用脚本化输入元素,但这是不明智的:
<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>
答案 4 :(得分:0)
你也可以试试这个
$("input").live('keypress', function(e) {
if!( code == 89 || code == 121 ||
code == 78 || code == 110 ) ) {
e.preventDefault();
}
else //your code