how to hide blinking cursor in input text?
I want to make something which would look like a select input but is actually not, here are the steps.
I made an <input type="text">
.
I added a background-image
, which will show a "select arrow", giving the impression that it's a select box.
I added a default value to this input.
There will be a hidden div which will SlideDown()
right under this input when I click on it.
I tried the read only thing so that the value cannot be changed, but the blinking cursor will show up.
If I use disabled
, the blinking cursor will not show up, but the .click()
or .focus
function in jQuery will not work. The drop down menu will not SlideDown()
.
How can I make it clickable while not showing the blinking cursor?
Here's the code
<div style="padding-top:17px; overflow:hidden;">
<div style="float:left;">
<label for="secretquestion">Secret Question</label><br>
<input type="text" class="inputselect" id="secretquestion" name="secretquestion" value="Choose a Secret Question" tabindex=10 /><br>
<div class="selectoptions" id="secretquestionoptions">
<b>test</b>
</div>
</div>
</div>
CSS
.selectoptions
{
display: none;
background-color: white;
color: rgb(46,97,158);
width: 250px;
margin:auto;
border-style: solid;
border-width:1px;
border-color: rgb(46,97,158);
font-size: 14px;
text-align: center;
}
.inputselect {
color: white;
cursor: pointer;
background-image: url('inputselect.png');
padding-top: 5px;
padding-bottom: 5px;
padding-left:10px;
padding-right:-10px;
width:240px;
border-style: solid;
border-color: rgb(46,97,158);
border-width: 1px;
}
.inputselect:hover {
outline:none;
color:aqua;
cursor: pointer;
background-image: url('inputselecthover.png');
}
.inputselect:focus {
outline:none;
color:aqua;
cursor: pointer;
background-image: url('inputselecthover.png');
}
Solution 1:
Just add this to "inputselect" class:
caret-color: transparent;
Solution 2:
The color of the cursor matches the color of the text.
<input type="text" style="color: transparent">
If you actually want to show text in the input box (my, some people are needy), you can use a text shadow.
<style>
body, div, input {
color: #afa;
text-shadow: 0px 0px 1px #fff;
}
<style>
(tested Firefox and Safari).
Solution 3:
I just used a blur to get rid of the cursor.
$('input').mousedown(function(e){
e.preventDefault();
$(this).blur();
return false;
});
Solution 4:
I think this is a perfect solution: make the input wide enough, align right to screen right, thus make cursor and content locate at the outside of the screen, while it's still clickable
Solution 5:
I finally find a trick solution.
<div class="wrapper">
<input type="text" />
</div>
.wrappr {
width: 100px;
height: 30px;
overflow: hidden;
}
.wrapper input {
width: 120px;
height: 30px;
margin-left: -20px;
text-align: left;
}
and in my sitation, it works!