Как я могу вызвать функцию «проверки» с помощью этой формы?

#php #javascript

#php #javascript

Вопрос:

Я просто хочу знать, как вызвать функцию с формой, в которой нет кнопки отправки? Потому что с моим кодом на данный момент это не работает. Если у меня есть такая форма в моем signup.php

 <?php
     include 'connect.php';
     include 'header.php';

            echo '<h2>Register</h2>';
            echo '
            <div class="container">  
                <form id="submit" method="post" action="" onsubmit="return formValidating();">  
                    <fieldset>  
                        <legend> Enter Information </legend>  
                            <br/>
                                <label for="user_name">Your username: </label>
                            <br/>
                                <input id="user_name" class="text" name="user_name" size="20" type="text">
                            <br/>


                            <br/>
                                <label for="user_pass">Your password: </label>
                            <br/>
                                <input id="user_pass" class="text" name="user_pass" size="20" type="password">  
                            <br/>




                            <br/>
                                <label for="user_pass_check">Confirm password: </label>
                            <br/>
                                <input id="user_pass_check" class="text" name="user_pass_check" size="20" type="password">
                            <br/>




                            <br/>
                                <label for="user_email">Email: </label>
                            <br/>
                                <input id="user_email" class="text" name="user_email" size="20" type="email">
                            <br/>
                            <br/>
                                <button class="button positive" type="submit"> <img src="like.png" alt=""> Register </button>  
                    </fieldset>  
                </form>  
            <div class="success" style="display: none;"> You are now a registered user!</div>  
            </div>';   
?>
  

и в моем header.php У меня есть функция, которая называется formValidating

 <!DOCTYPE HTML>
<head>
        <title> ShareLink </title>
        <link rel="stylesheet" href="style.css" type="text/css">

        <script src="jquery-1.6.4.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" src="script.js"></script>

        <!-- Back to Top easing jQuery -->
        <link rel="stylesheet" type="text/css" media="screen,projection" href="css/ui.totop.css" />

        <!-- jquery --> 
        <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
        <!-- easing plugin ( optional ) -->
        <script src="js/easing.js" type="text/javascript"></script>
        <!-- UItoTop plugin -->
        <script src="js/jquery.ui.totop.js" type="text/javascript"></script>

        <!-- For the form submit -->

        <script src="addMember.js" type="text/javascript"></script>


        <script type="text/javascript">
                $(document).ready(function() {
                        /*
                        var defaults = {
                                containerID: 'moccaUItoTop', // fading element id
                                containerHoverClass: 'moccaUIhover', // fading element hover class
                                scrollSpeed: 1200,
                                easingType: 'linear' 
                        };
                        */

                        $().UItoTop({ easingType: 'easeOutQuart' });

                });
        </script>
        <script type="text/javascript">

            /////////////////////////////////////////////////////////////
            ////////////////////// FORM VALIDATION //////////////////////
            /////////////////////////////////////////////////////////////

            function formValidating(){
                //username variables
                var username = document.getElementById["user_name"].value;
                //email variables
                var email = document.getElementById["user_email"].value;
                var atpos = email.indexOf("@");
                var dotpos = email.lastIndexOf(".");
                //password variables
                var password = document.getElementById["user_pass"].value;
                var password2 = document.getElementById["user_pass_check"].value;

                //username validation
                if (username == null || username == "")
                {
                     alert("Please enter your username");
                     return false;
                }

                //email validation
                else if (atpos<1 || dotpos<atpos 2 || dotpos 2>=email.length){
                     alert("Please enter a valid email address");
                     return false;
                }

                //password validation
                else if (password == null || password == "")
                {
                     alert("Please enter your password");
                     return false;
                }

                else if (password != password2){
                     alert("Please make sure that your two passwords match")
                     return false;
                }
        }


        </script>
</head>
<body>
<h1><></h1>
        <div id="wrapper">
        <div id="menu">
                <a class="item" href="/index.php">Home</a> -
                <a class="item" href="/create_topic.php">Create a topic</a> -
                <a class="item" href="/create_cat.php">Create a category</a> - 
                <a class="item" href="/members.php"> Members </a> - 
                <a class="item" href="/search_form.php"> Search </a> - 
                <a class="item" href="/profile.php"> Profile </a>

                <div id="userbar">
                <?php
                if($_SESSION['signed_in'])
                {
                        echo 'Welcome <b>' . htmlentities($_SESSION['user_name']) . '!</b>  <a class="item" href="signout.php">Log out</a>';
                }
                else
                {
                        echo '<a class="item" href="signin.php">Log in</a> or <a class="item" href="signup_2.php">Register</a>';
                }
                ?></div>
        </div>
                <div id="content">
  

Как я могу вызвать эту функцию fomValidation? Пожалуйста, помогите!!

Спасибо !! 🙂

Ответ №1:

самый простой способ — заменить

 <button class="button positive" type="submit">
  

с помощью

 <button id="myButton" class="button positive" type="submit" onClick="formValidating()">
  

и добавьте

 document.getElementById("myButton").submit();
  

до конца функции formValidating()

Ответ №2:

Вы должны использовать круглые скобки вместо скобок getElementById внутри вашей функции. Итак, getElementById(...) вместо getElementById[...] . (см. Внизу ответа)

Заменить <button class="button positive" type="submit"> на <input class="button positive" type="submit" /> .


Ваш исправленный код:

         function formValidating(){
            //username variables
            var username = document.getElementById("user_name").value;
            //email variables
            var email = document.getElementById("user_email").value;
            var atpos = email.indexOf("@");
            var dotpos = email.lastIndexOf(".");
            //password variables
            var password = document.getElementById("user_pass").value;
            var password2 = document.getElementById("user_pass_check").value;

            //username validation
            if (username == null || username == "")
            {
                 alert("Please enter your username");
                 return false;
            }

            //email validation
            else if (atpos<1 || dotpos<atpos 2 || dotpos 2>=email.length){
                 alert("Please enter a valid email address");
                 return false;
            }

            //password validation
            else if (password == null || password == "")
            {
                 alert("Please enter your password");
                 return false;
            }

            else if (password != password2){
                 alert("Please make sure that your two passwords match")
                 return false;
            }
    }
  

Ответ №3:

просто используйте событие onClick для вашего элемента button:

 onclick="formValidating();"
  

вам нужно изменить этот тип =»отправить» на тип =»кнопка»

Обновить:

Я поиграл с этим в jsFiddle:

http://jsfiddle.net/SRWCZ/

Я получил кнопку для вызова функции с помощью jQuery…

Комментарии:

1. Joemeister — попробуйте сейчас со скрипкой.