Respostas:
talvez você adicione keypress
ou keydown
aos campos de entrada e atribua o evento à função que fará o envio quando o botão Enter for clicado
seu modelo ficaria assim
<form (keydown)="keyDownFunction($event)">
<input type="text" />
</form
E você funciona dentro da sua classe ficaria assim
keyDownFunction(event) {
if (event.keyCode === 13) {
alert('you just pressed the enter key');
// rest of your code
}
}
Você também pode adicionar (keyup.enter)="xxxx()"
Editar:
<form (submit)="submit()" >
<input />
<button type="submit" style="display:none">hidden submit</button>
</form>
Para usar este método, você precisa ter um botão de envio, mesmo que não seja exibido "Obrigado pela resposta do Toolkit "
Resposta antiga:
Sim, exatamente como você escreveu, exceto que o nome do evento é em (submit)
vez de (ngSubmit)
:
<form [ngFormModel]="xxx" (submit)="xxxx()">
<input [(ngModel)]="lxxR" ngControl="xxxxx"/>
</form>
Prefiro (keydown.enter)="mySubmit()"
porque não será adicionada uma quebra de linha se o cursor estiver em algum lugar dentro de a, <textarea>
mas não no final.
Assim é muito simples ...
<form [formGroup]="form" (keyup.enter)="yourMethod(form.value)">
</form>
adicione isso dentro de sua tag de entrada
<input type="text" (keyup.enter)="yourMethod()" />
(keyup.enter)="methodname()"
isso deve funcionar e já mencionado em várias respostas, porém deve estar presente na tag do formulário e não no botão.
adicionar um botão de envio invisível resolve
<input type="submit" style="display: none;">
Simplesmente adicione (keyup.enter)="yourFunction()"
Espero que isso possa ajudar alguém: por algum motivo não consegui rastrear por falta de tempo, se você tiver um formulário como:
<form (ngSubmit)="doSubmit($event)">
<button (click)="clearForm()">Clear</button>
<button type="submit">Submit</button>
</form>
ao apertar o Enter
botão, a clearForm
função é chamada, embora o comportamento esperado fosse chamar a doSubmit
função. Alterar o Clear
botão para uma <a>
tag resolveu o problema para mim. Eu ainda gostaria de saber se isso é esperado ou não. Parece confuso para mim
Se você quiser incluir os dois de forma mais simples do que o que vi aqui, você pode fazer isso apenas incluindo o botão dentro do formulário.
Exemplo com uma função enviando uma mensagem:
<form>
<mat-form-field> <!-- In my case I'm using material design -->
<input matInput #message maxlength="256" placeholder="Message">
</mat-form-field>
<button (click)="addMessage(message.value)">Send message
</button>
</form>
Você pode escolher entre clicar no botão ou pressionar a tecla Enter.
Se você deseja incluir ambos - aceitar ao entrar e aceitar ao clicar e fazer -
<div class="form-group">
<input class="form-control" type="text"
name="search" placeholder="Enter Search Text"
[(ngModel)]="filterdata"
(keyup.enter)="searchByText(filterdata)">
<button type="submit"
(click)="searchByText(filterdata)" >
</div>