Allow space (key) in Mat-Input inside mat-step
I have added a mat-input inside the mat-step's template, so that title can be added by user.
<mat-horizontal-stepper>
<mat-step *ngFor="let group of apprGrpList; let i = index"
[label]="group.group_Name | capitalize"
[editable]="isEditable" >
<ng-template matStepLabel>
<mat-form-field class="sf-form-width">
<input class="sf-form-input"
matInput #title maxlength="30"
placeholder="Aprroval Step Title"
autocomplete="off">
<mat-hint *ngIf="title.value"
align="end">{{title.value.length}} / 30</mat-hint>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Clear"
(click)="title.value=''">
<mat-icon>close</mat-icon>
</button>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Set"
(click)="setTitle(group.sequence, title.value)">
<mat-icon>check</mat-icon>
</button>
</mat-form-field>
</ng-template>
...
below is a sample capture of what I have achieved.
Everything works fine until typing a words in mat-input does not accepts space input (spacebar keypress).
Any suggestions how to allow space key in mat-input inside mat-steps?
I have seen this in the documentations, is there a way to by pass SPACE event defaults?
Keyboard interaction
- LEFT_ARROW: Focuses the previous step header
- RIGHT_ARROW: Focuses the next step header
ENTER, SPACE: Selects the step that the focus is currently on- TAB: Focuses the next tabbable element
- TAB+SHIFT: Focuses the previous tabbable element
https://material.angular.io/components/stepper/overview
https://stackblitz.com/edit/angular-9hm4bv
angular angular-material
|
show 4 more comments
I have added a mat-input inside the mat-step's template, so that title can be added by user.
<mat-horizontal-stepper>
<mat-step *ngFor="let group of apprGrpList; let i = index"
[label]="group.group_Name | capitalize"
[editable]="isEditable" >
<ng-template matStepLabel>
<mat-form-field class="sf-form-width">
<input class="sf-form-input"
matInput #title maxlength="30"
placeholder="Aprroval Step Title"
autocomplete="off">
<mat-hint *ngIf="title.value"
align="end">{{title.value.length}} / 30</mat-hint>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Clear"
(click)="title.value=''">
<mat-icon>close</mat-icon>
</button>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Set"
(click)="setTitle(group.sequence, title.value)">
<mat-icon>check</mat-icon>
</button>
</mat-form-field>
</ng-template>
...
below is a sample capture of what I have achieved.
Everything works fine until typing a words in mat-input does not accepts space input (spacebar keypress).
Any suggestions how to allow space key in mat-input inside mat-steps?
I have seen this in the documentations, is there a way to by pass SPACE event defaults?
Keyboard interaction
- LEFT_ARROW: Focuses the previous step header
- RIGHT_ARROW: Focuses the next step header
ENTER, SPACE: Selects the step that the focus is currently on- TAB: Focuses the next tabbable element
- TAB+SHIFT: Focuses the previous tabbable element
https://material.angular.io/components/stepper/overview
https://stackblitz.com/edit/angular-9hm4bv
angular angular-material
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
1
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42
|
show 4 more comments
I have added a mat-input inside the mat-step's template, so that title can be added by user.
<mat-horizontal-stepper>
<mat-step *ngFor="let group of apprGrpList; let i = index"
[label]="group.group_Name | capitalize"
[editable]="isEditable" >
<ng-template matStepLabel>
<mat-form-field class="sf-form-width">
<input class="sf-form-input"
matInput #title maxlength="30"
placeholder="Aprroval Step Title"
autocomplete="off">
<mat-hint *ngIf="title.value"
align="end">{{title.value.length}} / 30</mat-hint>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Clear"
(click)="title.value=''">
<mat-icon>close</mat-icon>
</button>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Set"
(click)="setTitle(group.sequence, title.value)">
<mat-icon>check</mat-icon>
</button>
</mat-form-field>
</ng-template>
...
below is a sample capture of what I have achieved.
Everything works fine until typing a words in mat-input does not accepts space input (spacebar keypress).
Any suggestions how to allow space key in mat-input inside mat-steps?
I have seen this in the documentations, is there a way to by pass SPACE event defaults?
Keyboard interaction
- LEFT_ARROW: Focuses the previous step header
- RIGHT_ARROW: Focuses the next step header
ENTER, SPACE: Selects the step that the focus is currently on- TAB: Focuses the next tabbable element
- TAB+SHIFT: Focuses the previous tabbable element
https://material.angular.io/components/stepper/overview
https://stackblitz.com/edit/angular-9hm4bv
angular angular-material
I have added a mat-input inside the mat-step's template, so that title can be added by user.
<mat-horizontal-stepper>
<mat-step *ngFor="let group of apprGrpList; let i = index"
[label]="group.group_Name | capitalize"
[editable]="isEditable" >
<ng-template matStepLabel>
<mat-form-field class="sf-form-width">
<input class="sf-form-input"
matInput #title maxlength="30"
placeholder="Aprroval Step Title"
autocomplete="off">
<mat-hint *ngIf="title.value"
align="end">{{title.value.length}} / 30</mat-hint>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Clear"
(click)="title.value=''">
<mat-icon>close</mat-icon>
</button>
<button mat-button *ngIf="title.value"
matSuffix mat-icon-button aria-label="Set"
(click)="setTitle(group.sequence, title.value)">
<mat-icon>check</mat-icon>
</button>
</mat-form-field>
</ng-template>
...
below is a sample capture of what I have achieved.
Everything works fine until typing a words in mat-input does not accepts space input (spacebar keypress).
Any suggestions how to allow space key in mat-input inside mat-steps?
I have seen this in the documentations, is there a way to by pass SPACE event defaults?
Keyboard interaction
- LEFT_ARROW: Focuses the previous step header
- RIGHT_ARROW: Focuses the next step header
ENTER, SPACE: Selects the step that the focus is currently on- TAB: Focuses the next tabbable element
- TAB+SHIFT: Focuses the previous tabbable element
https://material.angular.io/components/stepper/overview
https://stackblitz.com/edit/angular-9hm4bv
angular angular-material
angular angular-material
edited Dec 31 '18 at 8:02
Cœur
18.1k9108148
18.1k9108148
asked Nov 20 '18 at 6:31
M.LaidaM.Laida
417110
417110
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
1
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42
|
show 4 more comments
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
1
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
1
1
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42
|
show 4 more comments
2 Answers
2
active
oldest
votes
It appears that the issue is with the input field being within the ng-template.
See this example:
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
It starts to work as expected if you remove the input and make it a sibling of the ng-template.
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
add a comment |
I seems that the mat-step header's keyboard interaction propagates to matInput, I have ended up using $event.stopPropagation() on keydown event of matInput.
Here is the stackblitz:
https://stackblitz.com/edit/angular-9hm4bv
sample image:
Hope It might be helpful to others.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387467%2fallow-space-key-in-mat-input-inside-mat-step%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
It appears that the issue is with the input field being within the ng-template.
See this example:
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
It starts to work as expected if you remove the input and make it a sibling of the ng-template.
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
add a comment |
It appears that the issue is with the input field being within the ng-template.
See this example:
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
It starts to work as expected if you remove the input and make it a sibling of the ng-template.
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
add a comment |
It appears that the issue is with the input field being within the ng-template.
See this example:
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
It starts to work as expected if you remove the input and make it a sibling of the ng-template.
It appears that the issue is with the input field being within the ng-template.
See this example:
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
It starts to work as expected if you remove the input and make it a sibling of the ng-template.
answered Nov 20 '18 at 10:46
JBoothUAJBoothUA
880425
880425
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
add a comment |
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
1
1
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
thanks for your efforts and contribution.
– M.Laida
Nov 22 '18 at 1:59
add a comment |
I seems that the mat-step header's keyboard interaction propagates to matInput, I have ended up using $event.stopPropagation() on keydown event of matInput.
Here is the stackblitz:
https://stackblitz.com/edit/angular-9hm4bv
sample image:
Hope It might be helpful to others.
add a comment |
I seems that the mat-step header's keyboard interaction propagates to matInput, I have ended up using $event.stopPropagation() on keydown event of matInput.
Here is the stackblitz:
https://stackblitz.com/edit/angular-9hm4bv
sample image:
Hope It might be helpful to others.
add a comment |
I seems that the mat-step header's keyboard interaction propagates to matInput, I have ended up using $event.stopPropagation() on keydown event of matInput.
Here is the stackblitz:
https://stackblitz.com/edit/angular-9hm4bv
sample image:
Hope It might be helpful to others.
I seems that the mat-step header's keyboard interaction propagates to matInput, I have ended up using $event.stopPropagation() on keydown event of matInput.
Here is the stackblitz:
https://stackblitz.com/edit/angular-9hm4bv
sample image:
Hope It might be helpful to others.
answered Nov 22 '18 at 2:08
M.LaidaM.Laida
417110
417110
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387467%2fallow-space-key-in-mat-input-inside-mat-step%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
what happens currently when the space button is pressed?
– JBoothUA
Nov 20 '18 at 6:35
@JBoothUA - If I type a word "My Stepper", it display as "MyStepper", no space in between words.
– M.Laida
Nov 20 '18 at 6:39
I just tried on stackblitz its working fine!
– Hrishikesh Kale
Nov 20 '18 at 6:40
here is the link angular-wxpesf.stackblitz.io
– Hrishikesh Kale
Nov 20 '18 at 6:40
1
thanks, i think i have a working answer for you
– JBoothUA
Nov 21 '18 at 17:42