I am working on a mobile website and I have a text input field.
I want it to be selected and copiable but not editable. When I add readonly
or onfocus="this.blur()"
it becomes unselectable. How can I achieve this?
The readonly attribute makes a form control non-editable (or “read only”). A read-only field can't be modified, but, unlike disabled , you can tab into it, highlight it, and copy its contents. Setting the value to null does not remove the effects of the attribute. Instead use removeAttribute('readonly') .
Try disabled="disabled" . This will disable textbox / textarea, so it won't be selected. Also, the value won't be submitted on form submission. In HTML5, only disabled attribute will also work.
All you have to do is set the contenteditable attribute on nearly any HTML element to make it editable.
Check this out.
<textarea rows="10" cols="50" onclick="this.focus();this.select()" readonly="readonly">
example text
</textarea>
Edit:
You can reassign text input value everytime it changes by adding input listener.
var inp = $("input")[0]; // select the input with proper selector
var default_value = inp.value;
inp.addEventListener("input", function () {
this.value = default_value;
}, false);
Working jsfiddle here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With