如何以两种形式保留文本框属性

How to keep textbox properties in two forms?

本文关键字:保留 文本 属性 两种      更新时间:2023-09-26

我创建了 2 个文本输入字段,其中包含 required=1 属性。但是,有两种形式重定向到两个页面。我有两个按钮,注册和登录,它们有两种形式,因此单击时,它们可以重定向到他们需要的页面。但是,输入字段仅保留必需属性,具体取决于其放置的形式。我希望两种表单始终需要输入字段。我确实尝试将它们置于所有内容之外,但是这两个表单都不需要输入。法典:

<div class="button-container">
<form action="/login" method="get">
    <div>
        <input placeholder="Username*" class="textbox" required=1 type="text" name="username" id="username" onkeypress="return alpha(event)" maxlength="15">
        <br>
        <input placeholder="Password*" class="textbox" required=1 type="password" name="password" id="password" onkeypress="return pass(event)"> 
    </div>
    <br><br>
    <div>
        <button class="btn " type="submit" >Login</button>
    </div>
</form>
//Form 2, when i click the button, even if the boxes are empty, it redirects :(
 <form action="/finishRegister" method="post">
     <div>
        <button class="btn " >Register</button>
     </div>
</form>
<script>
function alpha(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || (k >= 48 && k <= 57));
}
function pass(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 0 && k < 32) || (k > 32 && k < 222));
}
</script>
</div>

这是一张图片,所以你可以看到我在说什么。如果用户按注册,我希望重定向到新页面以输入更多帐户信息。但是,如果您已经有一个帐户并按登录,则用户名和密码就足够了

我建议你改变表单的动作。如果您检查控制台以获取以下示例,您将看到表单将尝试点击"/asdf"或"/qwer",具体取决于您点击的按钮。

$("input[type=submit][data-action]").click(function() {
  var
    $this = $(this),
    $form = $this.parents("form");
  $form.attr("action", $this.data("action"));
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Jquery Way</h1>
<form>
  <input type="submit" data-action="/asdf" value="asdf"></input>
  <input type="submit" data-action="/qwer" value="qwer"></input>
</form>
<h1> Angular Way
<div ng-app>
  <form action="{{action}}">
    <input type="submit" ng-click="action = '/asdf'" value="asdf"></input>
    <input type="submit" ng-click="action = '/qwer'" value="qwer"></input>
  </form>
</div>