Javascript JQuery验证字符最小值
我不知道我做错了什么,但基本上这就是我所拥有的 JQuery:Javascript JQuery验证字符最小值,javascript,jquery,validation,Javascript,Jquery,Validation,我不知道我做错了什么,但基本上这就是我所拥有的 JQuery: $(document).ready(function(){ $('form#status_form').submit(function(){ var statusV = $('input#status_updated2').val(); if(statusV.length > 255) { $('em#statusError').fadeIn().fa
$(document).ready(function(){
$('form#status_form').submit(function(){
var statusV = $('input#status_updated2').val();
if(statusV.length > 255)
{
$('em#statusError').fadeIn().fadeOut(5000);
}
else
{
//do cool stuff
}
});
});
从中提取的HTML表单:
<em style="display:none;"id="statusError">*NO MORE THAN 255 CHARACTERS</em>
<form id="status_form" name="status_form">
<input type="text" id="status_updated2" size="57" />
</form>
*不超过255个字符
如果我输入的字符数超过255个,错误消息将不会出现,并且“else”语句中的fnctions将通过。我错过了什么 绑定到
键下
事件和返回
ingfalse
如果已经有太多字符:
$('input[type="text"]').on('keydown', function (event) {
//check if the character limit has already been reached, but always allow backspace key strokes and delete key strokes
if (this.value.length >= 255 && event.which != 8 && event.which != 46) {
//this will stop the current key stroke from being added to the value of the input
return false;
}
});
下面是一个演示:
event.which!=8&&event.which!=46
-->这允许退格键和删除键执行它们的操作(因为它们删除字符而不是添加字符)。绑定到keydown
事件并return
ingfalse
如果已经有太多字符:
$('input[type="text"]').on('keydown', function (event) {
//check if the character limit has already been reached, but always allow backspace key strokes and delete key strokes
if (this.value.length >= 255 && event.which != 8 && event.which != 46) {
//this will stop the current key stroke from being added to the value of the input
return false;
}
});
下面是一个演示:
event.which!=8&&event.which!=46
-->这允许退格键和删除键执行它们的操作(因为它们删除字符而不是添加字符)。您没有看到消息的原因是,如果出现错误,您没有阻止默认操作(表单提交)的发生。你可以这样阻止它:
$(document).ready(function(){
$('form#status_form').submit(function(event){
var statusV = $('input#status_updated2').val();
if(statusV.length > 255)
{
event.preventDefault(); // stop the form submitting if there's an error.
$('em#statusError').fadeIn().fadeOut(5000);
}
else
{
//do cool stuff
}
});
});
请参阅JSFIDLE以了解工作示例。您没有看到消息的原因是,如果出现错误,您没有阻止默认操作(表单提交)的发生。你可以这样阻止它:
$(document).ready(function(){
$('form#status_form').submit(function(event){
var statusV = $('input#status_updated2').val();
if(statusV.length > 255)
{
event.preventDefault(); // stop the form submitting if there's an error.
$('em#statusError').fadeIn().fadeOut(5000);
}
else
{
//do cool stuff
}
});
});
请参阅JSFIDLE以了解工作示例。您很可能需要捕获默认表单提交事件。尝试:
$('form#status_form').submit(function(evt){
evt.preventDefault();
...
}
您很可能需要捕获默认表单提交事件。尝试:
$('form#status_form').submit(function(evt){
evt.preventDefault();
...
}
逻辑是正确的。但是您可能忘记调用e.preventDefault()来阻止提交#status_表单,这会破坏statusError消息
$('form#status_form').submit(function(e){
...
$('em#statusError').fadeIn().fadeOut(5000);
e.preventDefault();
逻辑是正确的。但是您可能忘记调用e.preventDefault()来阻止提交#status_表单,这会破坏statusError消息
$('form#status_form').submit(function(e){
...
$('em#statusError').fadeIn().fadeOut(5000);
e.preventDefault();
您是否记录了
statusV
的值以确保正确获取该值?这里我的第一个调试选项是一个简单的console.log(statusV,statusV.length)
;在提交javascript操作结束时,您是否记录了statusV
的值以确保正确获取该值?这里我的第一个调试选项是一个简单的console.log(statusV,statusV.length)
;在提交javascript操作结束时?感谢您花时间查看此操作!谢谢你花时间看这个!对这是有道理的!我懂了!我能在三分钟内得到这个答案!非常感谢!对这是有道理的!我懂了!我能在三分钟内得到这个答案!非常感谢!