防止用户发送空字段

Prevent user to send empty fields

本文关键字:字段 用户      更新时间:2023-09-26

我的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;
});

!服务器端验证是必要的,因为客户端验证只针对普通用户!不是黑客和机器人!明白了吗? !事实上,客户端验证很容易通过。