This may be a silly thing to ask but I have the following:
<input ng-model="product.quantity" min="1" type="number" id="quantity" name="quantity" value="1" />
But I can't get the form starts blank.
How can I ensure that the form will be filled with, at least a value of "1"?
The form value is being set by the ngModel value and will ignore the value attribute. Set your model!
$scope.product.quantity = 1;
Related
For instance:
<input class="table-input" type="number" name="qty" [(ngModel)]="cpy.qty"
matInput min="1" max="{{cpy.qty}}"
where cpy is object.
And cpy.qty is changing dynamically. Now I have to perform operation on onInputChange
How to detect dynamically inputchange Value?
For dynamically changed value, you can handle change logic with ngDoCheck https://angular.io/api/core/DoCheck
this is part of my code:
<input style="width:100px;" #quantity name="vehicle{{i}}_quantity"
class="options-input" [(ngModel)]="detail.quantity" type="number" required [ngClass]="{ 'error-bottom-border': quantity.value.length==0}" placeholder="0" min="0" [disabled]="viewMode">
When I put a value to one of the inputs all others get the same value. I dont't want this. I tried to add:
[ngModelOptions]="{standalone: true}"
But still nothing. Every input has uniqe name.
I hope that is a simple case.
ALL CODE
http://pasted.co/85f3a46b
did you use same ngModel for all the input? if yes that's the problem .Ngmodel is used to bind data to the input .
I have a div where I want the user to input a number that is between 0.05 and 0.5. I did it this way:
<input id="TS_dist" class="tableButton" type="number" maxlength="1" size="5" value="0.2" />
The problem is that when I am puting a value I cannot use the zero, it is not working, the . is not either. Only 1-9 numbers are accepted.
My browser is firefox.
Do you have any idea what I am doing wrong?
Thanks
By default the value increases/decreases by 1. Add a step attribute to change this behaviour:
<input step="0.05" id="TS_dist" class="tableButton" type="number" maxlength="1" size="5" value="0.2" />
http://jsfiddle.net/uh44h3y8/1/
Try adding, step="any" in this input.
add step=0.1on <input> field that will work
I'm facing the issue for input field's attributes min and max values in Firefox (v_30.0) browser.
This works
<input name="year" type="number" placeholder="YYYY" required min="1" max="12"/>
But this does not
<input name="year" type="number" placeholder="YYYY" required min="1990" max="20014"/>
it displays 1 on input box and does not move further.
Firefox (unlike Chrome) seems to follow the HTML5 definition for stepping up the value of an input type=number element. When the value is not set, as it here isn’t initially, it is interpreted as 0, so the result of incrementing is 1. Since it is outside the range, it is an invalid value, and further stepping is not possible.
This means that input type=number is intended for use with quantities for which an initial value can be set (or the default initial value of 0 can be accepted). After all, stepping up and down is really the reason for using this element type, and it needs to start somewhere.
Consequently, there is not much point in using required for such an element, unless the implicit default of 0 is acceptable and within the bounds set.
If you still want to use input type=number, you need to set some initial value with the value attribute that is within the bounds. Technically, this means that the pattern attribute has no effect.
To read a required 4-digit number when no default value is set, optionally with a placeholder, you can use a text input field with suitable attributes (but you cannot express a range requirement in HTML, in any reasonable way, in this approach):
<input name="year" type="text" placeholder="YYYY"
size="4" maxlength="4" pattern="\d[4}" required
style="font-family: Consolas, monospace">
Just set the starting value and it will work
<input name="year" type="number" min="1990" max="2014" value="1990" required />
http://jsfiddle.net/ywq6dq93/
EDIT:
As another user previously pointed out, this will not show the placeholder but instead the starting value of 1990. In Chrome it works to not set the value and still show the placeholder and achieve the desired functionality, however it seems that in FF you would need to set the value by javascript when focusing on the input field, if you want to show a placeholder instead of a starting value.
Demo for this: http://jsfiddle.net/1pg5727f
<input type="number" step="1" min="1" name="product_qty" value="1" title="Qty" class="input-text" size="4" maxlength="10" pattern="\d*" required />
if you still looking for the answer you can use input type="number".
min max work if it set in that order:
1-name
2-maxlength
3-size
4-min
5-max
just copy it
<input name="X" maxlength="3" size="2" min="1" max="100" type="number" />
<input type="number" maxlength="2" />
Its working in other browsers like Firefox,IE and not working in google chrome.Can any one suggest how to fix issue in chrome?
because it's a number, you can use max, not maxlength.
You need to allow only two digit number then you can use following code
<input type="number" min="1" max="99" />
Use the max attribute for inputs of type="number".
It will specify the highest possible number that you may insert
<input type="number" max="999" />
if you add both a max and a min value you can specify the range of allowed values:
<input type="number" min="1" max="999" />
For user experience, you would prefer the user not to be able to enter more than a certain number, use Javascript/jQuery.
EG: <input type="number" max="99" min="9" id="myInput"/>
$('#myinput').on('keydown', function () {
if($(this).val().length>2)
return false;
});
use max="" and there is has to be a form element for it to work otherwise it won't work.
fiddle
Try this
<input type="tel" maxlength="2" />