RegEx不与我的jQuery工作
RegEx not working with my jQuery
有人可以帮助我,请,我想显示一个错误,当用户使用jquery无效输入。
如果输入为空,它可以工作,但不能与RegEx一起工作。
下面是html代码:
<div class="error" style="padding:5px 10px;background-color:yellow;border:1px solid red;border-radius:5px;display:none"></div>
<input type="text" name="nama">
<input type="submit" name="submit" value="Cek">
这里是jQuery
$(document).ready(function () {
var justChar = /^[a-zA-Z]+$/;
$('input[name="submit"]').click(function () {
if ($('input[name="nama"]').val() === "") {
$('.error').html('<ol></ol>');
if ($('input[name="nama"]').val() === "") {
$('.error ol').append("<li>Name Must Be Require</li>");
} else if (!justChar.test($('input[name="nama"]').val())) {
$('.error ol').append("<li>Name Must Be Character</li>");
}
$('.error').slideDown('slow');
return false;
}
return true;
});
});
我写在jsfield
删除父条件if ($('input[name="nama"]').val() === "")
,因为如果要分析输入值,它是无意义的。
对于匹配正则表达式,使用jQuery样式方法:$('input[name="nama"]').val().match(justChar);
您的正则表达式检查是错位的,它是在if ($('input[name="nama"]').val() === "")
条件下,因此正则表达式将永远不会被检查
I got this working:
$(document).ready(function(){
var justChar = /^[a-zA-Z]+$/;
$('input[name="submit"]').click(function(){
if($('input[name="nama"]').val() === "") {
$('.error').html('<ol></ol>');
$('.error ol').append("<li>Name Must Be Require</li>");
$('.error').slideDown('slow');
return false;
} else if(!justChar.test($('input[name="nama"]').val())) {
$('.error').html('<ol></ol>');
$('.error ol').append("<li>Name Must Be Character</li>");
$('.error').slideDown('slow');
return false;
} else {
return true;
}
});
});
只有当值为空时才检查内部条件。如果它不是空的,那么你的内部状态检查甚至没有进行。参见外部检查-
if ($('input[name="nama"]').val() === "") {
update:另外,最好像@Valentin Mercier建议的那样使用JQuery匹配。这是个好主意
删除上面的行,你的错误正确显示
编辑:显示修改后的代码以使OP
更清晰$(document).ready(function () {
var justChar = /^[a-zA-Z]+$/;
$('input[name="submit"]').click(function () {
if ($('input[name="nama"]').val() === "") {
$('.error').html('<ol></ol>');
$('.error ol').append("<li>Name Must Be Require</li>");
$('.error').slideDown('slow');
return false;
} else if (!$('input[name="nama"]').val().match(justChar)) {
$('.error').html('<ol></ol>');
$('.error ol').append("<li>Name Must Be Character</li>");
$('.error').slideDown('slow');
return false;
} else {
$('.error').hide();
return true;
}
});
});
编辑:分享jsfiddle作为OP仍然不知道!。希望能有所帮助!
http://jsfiddle.net/PrasanthSudarsanan/tLmD7/2/相关文章:
- PHP/AAJAX阻止jquery工作
- Chrome扩展和Chome浏览器中的Jquery工作方式不同
- 2次点击事件不会'我在jquery工作
- 使用 href=“#” JQuery 工作,但使用 href=“page.jsp” 不起作用
- 迭代 javascript 对象无法通过 jQuery 工作
- 让简单的Javascript / jQuery工作(Ariel Flesler的ScrollTo)
- 更新面板阻止 jquery 工作
- Jquery工作,但只是暂时的
- 一个jQuery工作,两个不工作
- 当我使用AngularJS部分时,如何让JQuery工作
- 为什么不;我的jquery工作(使用延迟、hasclass、addclass、removeclass、keyUp、key
- jQuery工作不正常
- 我有一个JQuery工作,但小越野车
- :has() jquery工作不正常
- JQuery工作得太快了
- 如果一个输入单选被选中,改变父元素'的颜色:不能'使它与jQuery工作
- Chrome扩展:访问DOM的弹出.html和让jQuery工作
- 如何使下拉jQuery工作
- 尝试使jquery工作
- RegEx不与我的jQuery工作