如何使用js验证输入并将输入存储在db中

时间:2014-02-03 10:54:54

标签: javascript python

Javascript代码:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script type="text/javascript">
        function validate()
        {
            var FirstName = document.getElementById('FN').value;
            var LastName  = document.getElementById('LN').value;
            var Username  = document.getElementById('userName').value;
            var Email     = document.getElementById('emailId').value;
            var Password  = document.getElementById('passWord').value;

            if (FirstName == "")
            {
                alert("Please Enter First Name");
                return false;
            }
            if (LastName == "")
            {
                alert("Please Enter Last Name");
                return false;
            }
            if (Username == "")
            {
                alert("Username Should Not Contain Spaces");
                return false;
            }
            if (Email == "")
            {
                alert("Please Enter Email");
                return false;
            }
            if (Password == "")
            {
                alert("Password Should Not Contain Spaces");
                return false;
            }
            var emailPat = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
            var EmailmatchArray = Email.match(emailPat);
            if (EmailmatchArray == null)
            {
                alert("Your Email Address Seems Incorrect. Please Try Again.");
                return false;
            }
            if(FirstName!== "" && LastName!=="" && Username!=="" && Email!=="" && Password!=="")
            {
                return true;
            }
        }
</script>
      <form action="Registration" method="get">
FirstName   :     <input type="text"     id="FN"       name="FN"><br>
LastName    :     <input type="text"     id="LN"       name="LN"><br>
UserName    :     <input type="text"     id="userName" name="userName"><br>
Password    :     <input type="password" id="passWord" name="passWord"><br>
Email       :     <input type="text"     id="emailId"  name="emailId"><br>
<input type="Submit" onclick="validate()">

Python代码:    

            class Registration(View):
           def get(self, request,msg):
            user_name = request.GET['userName']
            Firstname = request.GET['FN']
            Lastname = request.GET['LN']
            pass_word = request.GET['passWord']
            email_id = request.GET['emailId']
            db_results = usersCollection.find({"userName": user_name})
            print db_results
            print db_results.count()
            print user_name
            print dumps(db_results)
            if db_results.count() == 0:
                    token = binascii.b2a_hex(os.urandom(25))
                    #encrypting password...
                    encrypted_password = pwd_context.encrypt(pass_word)
                    database_key = usersCollection.insert(
                        {"Firstname":Firstname, "Lastname":Lastname, "userName": user_name, "passWord": encrypted_password, "emailId": email_id, "token": token,
                         "status": 0, "isSuperUser": "No", "forgotPasswordToken": '',
                         "createdOn": datetime.datetime.now()})
            if database_key != '':
                    return_output = {'message': 'Signup completed successfully! ', 'status': 'success'}
                    return HttpResponse(dumps(return_output))

HI朋友我想使用javascript验证输入,如果所有字段都正确,那么我想将它们存储在db中我已经把代码放到那里但是当我提交没有输入的表单时我只得到一条警告消息关闭警报后,我收到一条用python代码写的消息,空输入存储在db中,请帮助我在哪里做错了.........

1 个答案:

答案 0 :(得分:1)

基本上发生的事情是,无论函数的返回值如何,您的表单都会被提交。

因此,不要在点击时调用validate()函数,而是调用onsubmit。像这样 -

<form action="Registration" method="get" onsubmit="return validate();">

并删除onclick事件。 如果从validate()返回false,则不会发送表单。