我有3个输入字段,我需要一个简短的jquery代码来禁止它们中的空格。
<input id='email' type='email' name='email' />
<input id='username' type='text' name='username' />
<input id='pwd' type='password' name='pwd' />
答案 0 :(得分:1)
首先,在3 input tags
<input id='email' class='disallow' type='email' name='email' />
<input id='username' class='disallow' type='text' name='username' />
<input id='pwd' class='disallow' type='password' name='pwd' />
这是jQuery: -
$(document).ready(function() {
$('.disallow').keypress(function(e) {
if(e.which === 32) {
return false;
}
});
});
答案 1 :(得分:1)
试试这个:
$('input').keypress(function (e) {
// For detecting charCode, the following is the best cross-browser approach
var charCode = e.which || e.keyCode;
if (charCode === 32) {
// the default action of the event will not be triggered.
e.preventDefault();
}
});
这将禁止所有输入中的空格。如果你只想在上面的三个或更多输入上禁用空格,只需在myClass
之类的所有输入中添加一个类,并调用如下函数:
$('.myClass').keypress(function (e) {
答案 2 :(得分:0)
这是用户无法通过粘贴剪贴板中的值来绕过的第一个解决方案 - 用户可以做很多事情。
这是用户无法绕过的第一个解决方案,因为他们使用浏览器扩展程序为他们填写登录/表单。
既然你提到jQuery与Validate Plugin的表单验证怎么样?
或者,如果您想要简单验证如何使用提交事件进行测试。
$('form').on('submit', function () {
var spaceTest = new RegExp('^[^ \t\r\n\v\f]*$');
//loop through your desired form elements
$(this).find('.disallow').each(function () {
var $this = $(this),
m = spaceTest.exec($this.val());
// if it fails your test
if (m === null) {
// reject
} else {
// accept
}
});
});