更改属性时按钮未提交

时间:2019-02-22 16:23:53

标签: javascript php html

我正在构建一个只有一个用于“登录”和“注册”按钮的登录系统。

<button type="submit" form="LoginForm" id="login"></button>

切换到注册后,我更改了按钮属性,反之亦然:

function showSignUp(){
document.getElementById('username').style.display = "block";
document.getElementById('mail').style.display = "block";
document.getElementById('password').style.display = "block";
document.getElementById('password-repeat').style.display = "block";
document.getElementById('token').style.display = "none";

document.getElementById('login').setAttribute("name","signup");
document.getElementById('login').setAttribute("value","signup");
}

            <label for="rdo-signup" class="btn-radio">
                <input type="radio" id="rdo-signup" name="radio-grp" onclick="showSignUp()">
...

问题是我提交表单时$_POST['signup']为空。

当我在HTML属性中使用name="login" value="login"加载PHP时,它确实起作用,但是一旦我再次更改注册,它就不再起作用。

我敢肯定,由于服务器端代码和客户端更改,我正在弄些什么,但是我不知道该如何更改/解决此问题?

[解决方案]

问题是必填字段。即使它们被隐藏,在我填满它们之前,它们仍然不会让我提交。

1 个答案:

答案 0 :(得分:0)

我已经做了一个类似的设计并使其起作用。请看下面的代码。 希望有帮助

HTML表单:

<script type="text/javascript">
        function showSignUp(){
            document.getElementById('username').style.display = "block";
            document.getElementById('mail').style.display = "block";
            document.getElementById('password').style.display = "block";
            document.getElementById('password-repeat').style.display = "block";
            document.getElementById('token').style.display = "none";

            document.getElementById('login').setAttribute("name","signup");
            document.getElementById('login').setAttribute("value","signup");
        }
    </script>

    <form action="form.php" method="POST" id="LoginForm">
        <input type="text" name="user" id="username" placeholder="username"><br><hr>
        <input type="mail" name="mail" id="mail" placeholder="mail"><br><hr>
        <input type="password" name="password" id="password" placeholder="password"><br><hr>
        <input type="password" name="password-repeat" id="password-repeat" placeholder="confirm password"><br><hr>
        <input type="text" name="token" id="token" placeholder="token"><br><hr>

        <button type="submit" form="LoginForm" id="login" name="login" value="login">login</button>
        <button type="button" id="change">signup</button>
    </form>

    <script type="text/javascript">
        document.getElementById('change').onclick = function(){
            document.getElementById('login').setAttribute('name','signup'); 
            document.getElementById('login').innerHTML = 'signup'; 
            document.getElementById('login').setAttribute('value','signup');
        }
    </script>

PHP操作:

<?php
echo $_POST["signup"];
echo $_POST["login"];
?>