How to create a Textbox with style that accepts only 2 characters - html

How do i create a html textbox which looks that it can accepts only 2 characters .
<input type="text" maxlength="2" size="1"/>
what style do i need to apply so that textbox can be shown in such way it can accept 2 characters style ="???"

A simple width would do:
<input type="text" maxlength="2" size="1" class="twochar"/>
And the css:
.twochar
{
width:2em;
}
http://jsfiddle.net/kjl_42/vstMC/

Related

Partial changing of some Placeholders in Html through CSS?

So I am having a few input fields, where some are rquired to be filled, others not.
And I would like to add an red * at the end of each Placeholder where that is the case to indicate which one have to be filled, while all the other Placeholders, and the parts before the *, keep there normal color/or one of my choosing?
Note: Already tried Labels, and stuff, as well as putting the *´s just behind the input fields-which did work, but unfortunately looked Horrible.
Here is the code
Html
<input type="text" id="ISBN_VALUE" name="ISBN_VALUE" placeholder="ISBN">
<input type="text" id="TITLE_VALUE" name="TITLE_VALUE" placeholder="Titel">
<input type="text" id="AUTHOR_VALUE" name="AUTHOR_VALUE" placeholder="Autor">
<input type="text" id="COPY_VALUE" name="COPY_VALUE" placeholder="Anzahl">
<input type="text" id="PRICE_VALUE" name="PRICE_VALUE" placeholder="Preis">
<input type="text" id="COMMENT_VALUE" name="COMMENT_VALUE" placeholder="Kommentar">
<input type="text" id="USER_VALUE" name="USER_VALUE" placeholder="Benutzer">
And here the current CSS
::placeholder {
color: #ff0000;
}

HTML input pattern with symbols automaticaly added

I am creating a form where someone needs to enter a certain code so I want to use the pattern attribute on my input element.
But I need more than this.
For example the code looks like this: 12.01.19-123.45
But I don't want to user to enter the "." and the "-" symbol manually.
Is there a built in way so it gets added automatically?
No there is no built-in way. There are input fields with types for e.g. date and number though.
In your case, you could either chain multiple input fields (field values with the same name attribute will be sent as an array). Or have a custom validator and or formatter function that does format the code on a key-event such as key-up for example. You could use regex to do so or write a small parser for it.
E.g. something like that:
function onSubmit(event) {
event.preventDefault();
const myFieldArray = document.getElementsByName('myField[]');
for (const i of myFieldArray.values()) {
console.log(i.value);
}
}
input {
width: 50px;
/* do not do this - this is just for the demo */
}
<form onSubmit="onSubmit(event)">
<input type="number" name="myField[]" placeholder="12" />
<span>.</span>
<input type="number" name="myField[]" placeholder="01" />
<span>.</span>
<input type="number" name="myField[]" placeholder="19" />
<span>-</span>
<input type="number" name="myField[]" placeholder="123" />
<span>.</span>
<input type="number" name="myField[]" placeholder="45" />
<input type="submit" value="submit">
</form>
or
<form onSubmit="onSubmit(event)">
<input type="string" name="myField" placeholder="12" onKeyUp="format(this.value)"/>
<input type="submit" value="submit">
</form>
function format(value) {
// format the value here ...
}

Text of input is valid always

I'm going to realize input of text like this:
<input type="text" maxlength="16" required/>
And want to use valid and invalid stations like this:
input:invalid {
background: #fdd;
}
input:valid {
background: #dfd;
}
But when i write any text my input is valid always. I tried use pattern:
pattern=".{16,}"
But that did not solve anything. Where is my mistake?
The input must be valid when length of input is equal to 16.
You're close! Here's how to do it.
Allowing only alphanumerics
<form>
<input id="username" type="text" pattern="[a-zA-Z0-9]{16}" required>
<input id="submit" type="submit" value="create">
</form>
Allowing any character
<form>
<input id="username" type="text" pattern=".{16}" maxlength="16" required>
<input id="submit" type="submit" value="create">
</form>
With jQuery mask() plugin
Here, we just force the delimiter to be part of the input value followed by the number of characters in each group. In this case 4 numbers followed by a space.
$(document).ready(function() {
$('#username').mask('9999 9999 9999 9999');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.0/jquery.mask.min.js"></script>
<form>
<input id="username" type="text" pattern="[0-9]{4} [0-9]{4} [0-9]{4} [0-9]{4}" required>
<input id="submit" type="submit" value="create">
</form>
For more info about regex and patterns, check out Regexr.
In your code, the attribute maxlength="16" does not allow more than 16 characters to be typed in the input box. The regular expression you are using is valid when the input is between 0 and 16 characters. Therefore, you regexp should be:
.{16,16}
And your HTML code:
<input type="text" pattern=".{16,16}" maxlength="16" required/>
You might want to see it working in this fiddle.

I want to concatenate two text fields in html and display the result in other test field [duplicate]

This question already has answers here:
Concatenate multiple HTML text inputs with stored variable
(2 answers)
Closed 9 years ago.
I have my code like this
First name : <input type="text" name="txtFirstName" /> <br><br>
Last name : <input type="text" name="txtLastName" /> <br><br>
Full name : <input type="text" name="txtFullName" > <br><br>
if i give abc in first name text box and def in last name text box the result should be displayed as abcdef in full name text box. How to do this?
It's actually quite simple with a tiny bit of inline JavaScript using the form oninput attribute.
<form oninput="txtFullName.value = txtFirstName.value +' '+ txtLastName.value">
First name : <input type="text" name="txtFirstName" /> <br><br>
Last name : <input type="text" name="txtLastName" /> <br><br>
Full name : <input type="text" name="txtFullName" > <br><br>
</form>
http://jsfiddle.net/RXTV7/1/
I'd also suggest using HTML5 <output> element instead of third input. To learn more start here: http://html5doctor.com/the-output-element/
Bind a function that generates the full name on keyup events for your inputs...
<script type="text/javascript">
function generateFullName()
{
document.getElementById('fullName').innerText =
document.getElementById('fName').value + ' ' +
document.getElementById('lName').value;
}
</script>
First Name <input type="text" id="fName" onkeyup="generateFullName()" /><br/>
Last Name <input type="text" id="lName" onkeyup="generateFullName()" /><br/>
Full Name <span id="fullName" />
if you want, you can have the FullName as a input too, and set it's Value.
Try this (using jQuery). it will work. But the fullname field will remain empty if the individual fields are empty
<script>
$(document).ready(function(){
$("fullName").focus(function(){
var fullname = $("fName").val() + $("lName").val();
$("fullName").val(fullname);
});
});
</script>
First Name <input type="text" id="fName" /><br/>
Last Name <input type="text" id="lName" /><br/>
Full Name <span id="fullName"/>
For manipulating HTML you'll need to use JavaScript. There are tons of good tutorials out there, for example on w3schools.com.
You may also want to check out jQuery, which makes this kind of manipulations a lot easier and more straightforward.
you can use the below code for that:
<script type="text/javascript">
function generateFullName()
{
document.getElementById('txtFullName').value =
document.getElementById('fName').value + ' ' +
document.getElementById('lName').value;
}
</script>
First Name <input type="text" id="fName" /><br/>
Last Name <input type="text" id="lName" oninput="generateFullName()" /><br/>
Full name <input type="text" id="txtFullName" name="txtFullName" > <br><br>
Also, instead of oninput event , you can opt for onblur also.

How do I edit the HTML form elements when in CSS? Do I assign an id?

<form id="form">
Name: <input type="text" name="name"/></br>
Status Message: <input type="text" name="statusmessage"/><br/>
</form>
So, do I assign an id="name" within the brackets? And then in CSS, do I call it with #form name?
html:
<input type="text" name="name" id="id" class="class" />
css: (any of the following would style the element)
input [name=name]{}
#id{}
.class{}
or you could style all text input fields in the form with:
#form input[type=text]{}
If you are using CSS2 you can use <input type="text" name="name" id="name" /> and then write this CSS:
#name {
:
}
It will select the element with ID name. Remember that using additional address info is unnecessary since the ID is uniquely sufficient to select any single element.