2013-03-23 77 views
-1

嗨我有一个文本框没有行动按钮。在打字时,它必须验证它是否从A到Z,否则它会在文本框旁边引发错误。我怎样才能做到这一点?jquery文本框验证

+0

结帐这个.. http://stackoverflow.com/questions/5241957/validate-a-textbox-using-jquery?rq=1 – 2013-03-23 22:40:18

+0

这不是一个我正在寻找。键入它的单个文本框必须做两件事:检查只输入a-z,如果没有,则输入自身时必须抛出错误。 – user2202425 2013-03-23 22:45:37

+0

好吧,我明白了,你会想要使用正则表达式...并将它结合起来.. – 2013-03-23 22:50:49

回答

1

这可能会为你工作:

<input type="text" class="abc"> 

也许你已经做调整正则表达式,还没有真正测试过它:

$(document).ready(function() { 
$('.abc').bind('keyup', function() { 
    regex = /^[A-z0-9]+$/; 
    if(!regex.test($(this).val())) { 
     $(this).next('.error').remove(); 
     $(this).after('<div class="error">Wrong</div>'); 
    } else { 
     $(this).next('.error').remove();    
    } 
}); 
}); 

小提琴:http://jsfiddle.net/EB6ET/2/

+0

这就是我正在寻找..感谢:)。你能否单独改变上述代码的条件.. 1)只接受一个给z 2)只接受0到9 .. – user2202425 2013-03-23 23:26:38

2

在这里你去! 我已经让它变得更简单,让人们可以理解的基本逻辑的吧:)

,这里是我的jsfiddle ..

http://jsfiddle.net/joedf/mhVqr/2/

的Html

<input type='text' id='textbox'> 
<input type="button" class="button-disabled" id="change" disabled="disabled" value="click"> 
<div id="throwEx"/> 

JS

$("#throwEx").hide(); 
$("#textbox").keyup(checkForm).focus(checkForm); 

function checkForm() { 
    var needle = /^([a-zA-Z0-9]+)$/; 
    var inputVal = $("#textbox").val(); 

    if (inputVal == '') { 
     $("#change").addClass("button-disabled").removeClass("button"); 
     $("#change").attr("disabled", "disabled"); 
     $("#throwEx").hide(); 
    } 
    else if (!needle.test(inputVal)) { 
     $("#change").addClass("button-disabled").removeClass("button"); 
     $("#change").attr("disabled", "disabled"); 
     $("#throwEx").text("Error: Only Alphanumeric characters are allowed..."); 
     $("#throwEx").show(); 
    } else { 
     $("#change").removeClass("button-disabled").addClass("button"); 
     $("#change").removeAttr("disabled"); 
     $("#throwEx").hide(); 
    } 
} 
1

我从stackoverflow得到了这个here并已修改,只能输入字符A到Z。

<input type="text"/> 

$(document).ready(function() { 

$('input').keyup(function() { 
    var $th = $(this); 
    $th.val($th.val().replace(/[^a-z]/g, function(str) { alert('You typed " ' + str + ' ".\n\nPlease use only letters and numbers.'); return ''; })); 
}); 
}); 

链接摆弄here

1

控制使用KEYUP功能的文本框是一个坏主意,因为用户可以复制/粘贴文本的文本框内,或选择浏览器的自动完成字段等的一个我做法:

LIVE JSFIDDLE

HTML:

<input type="text" id="TextBox1" name="TexBox1" value="" /> 
<span id='error' name='error'></span> 

JS:

function monitor() { 
    if ($('#TextBox1').val().length > 0) { 
     var reg = /^([a-zA-Z]+)$/; 
     if (!reg.test($('#TextBox1').val())) { 
      $('#error').html("Only letters are allowed!"); 
     } else { 
      $('#error').html(""); 
     } 
    } else { 
     $('#error').html(""); 
    } 
} 

var timer = ''; 

$('#TextBox1').on('focus', function() { 
    timer = setInterval(monitor, 100); 
}).on('blur', function() { 
    clearInterval(timer); 
});