代码之家  ›  专栏  ›  技术社区  ›  johnny 5

Angular提交在提交之前不会填充隐藏输入

  •  0
  • johnny 5  · 技术社区  · 4 年前

    我正在创建一种使用angular的不同提供商登录的方法。 我在提交表单时遇到问题,loginProvider值未被发送到服务器。 我有一个看起来像这样的表格:

    <form #form method="post" class="form-horizontal" [action]="loginUrl">
        <div>
            <p>
            <button ion-button block (click)="loginFrom(form, 'StripeConnect')" title="Log in using Stripe">
                Stripe Connect
            </button>
            <button ion-button block (click)="loginFrom(form, 'google')" title="Log in using Google">
                Google
            </button>
                <input type="hidden" name="provider" [value]="loginProvider">
                <input type="text" name="entryCode" placeholder="Entry Code">
            </p>
        </div>
    </form>
    

    在我的打字脚本文件中,我有以下内容:

    loginProvider: string
    loginFrom(form, loginProvider) {
      this.loginProvider = loginProvider;
      setTimeout(() => form.submit(), 0);
    }
    
    0 回复  |  直到 4 年前
        1
  •  3
  •   Jakob Em    4 年前

    您可以将不同的值作为表单值放入提交按钮,如下所示:

    <form #form method="post" class="form-horizontal" [action]="loginUrl">
        <div>
            <p>
            <button ion-button block type="submit" name="loginProvider" value="StripeConnect" title="Log in using Stripe">
                Stripe Connect
            </button>
            <button ion-button block type="submit" name="loginProvider" value="google" title="Log in using Google">
                Google
            </button>
                <input type="text" name="entryCode" placeholder="Entry Code">
            </p>
        </div>
    </form>