防止用户发送空字段
Prevent user to send empty fields
我的jQuery验证表单警告用户,如果他试图发送空数据,如果他点击"Next"
按钮。
无论如何,用户仍然可以通过按输入发送空数据。
所以我使用下面的代码,它使按输入与点击"Next"
按钮相同;
// this script makes pressing Enter gives error. But empty data still goes to database.
$('.form-horizontal').keypress(function (event) {
if (event.which === 13) {
$(".next").trigger('click');
}
});
这段代码只是阻止用户进入下一步。但是当用户点击时,输入数据正在写入数据库,即使他看到"错误信息"。
*服务器端验证很容易防止这种情况。但如果我们能早点预防,为什么还要让服务器忙呢?
这里是JsFiddle你可以测试整个东西:
http://jsfiddle.net/6zu2vsj7/3/*有没有办法使它的工作没有保持服务器忙于空字段?我不想阻止用户按输入因为这一点都不酷,也不利于用户体验
在将数据发送到服务器之前,可以添加一个条件来检查表单是否有效,如下所示。希望这对你有帮助。
// Let's act like we send to database.
$(function(){
$('input[type=submit]').click(function(){
if($("#myform").valid()){
$.ajax({
type: "POST",
url: "sent.php",
data: $("#myform").serialize(),
beforeSend: function(){
$('#stepsuccess').html('Sent to the database. Strange.');
},
success: function(data){
$('#stepsuccess').html(data);
}
});
}
});
});
您只需要阻止该事件的默认行为
你可以用这个
$('.form-horizontal').keypress(function (event) {
if (event.which === 13) {
event.preventDefault();
$(".next").trigger('click');
}
});
试试这个:
$(".form-horizontal").submit(function(e){
//do somethings or other validations
return false;
});
!服务器端验证是必要的,因为客户端验证只针对普通用户!不是黑客和机器人!明白了吗? !事实上,客户端验证很容易通过。
相关文章:
- Meteor-添加用户自定义字段的方法不起作用
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 需要提取当前登录用户的用户名以在字段中输入
- MeteorJS:用户集合如何公开新字段
- 使用具有用户定义字段的新请求者创建新的Zendesk票证
- 阻止用户在字段中粘贴
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何在用户输入后立即获取输入字段的值
- 无法根据用户在编辑窗口中的输入显示/隐藏jtable jquery字段
- 用户提供的字段在解析登录时不返回
- 将用户电子邮件输入字段复制到用户名字段中(去除包括“@”和之后的所有内容)
- 当用户在输入字段事件中输入内容时,为该字段事件添加动画占位符
- 如何使用ian:accounts-ui-botstrap-3根据Meteor中的用户输入设置配置文件字段值
- AngularJs的Kendo UI:当用户在网格中选择行时,如何在文本框字段上绑定数据
- 如何通过向用户推送模式引用来更新用户对象's数组字段
- 如何检测用户何时在Google Places字段中输入无效位置
- 自动完成PHP表单选择字段中的用户姓氏
- 当用户输入时打开一个弹出窗口,使用javascript填充表中的输入字段
- 向PHP表单添加更多字段(用户可以添加多个地址)
- 向Meteor添加用户id字段.用户收集的帐户包