how to hide blinking cursor in input text?

JavascriptJqueryHtmlCss

Javascript Problem Overview


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');
}

Javascript Solutions


Solution 1 - Javascript

Just add this to "inputselect" class:

caret-color: transparent;

Solution 2 - Javascript

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 - Javascript

I just used a blur to get rid of the cursor.

$('input').mousedown(function(e){
  e.preventDefault();
  $(this).blur();
  return false;
});

Solution 4 - Javascript

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

perfect solution

Solution 5 - Javascript

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!

Solution 6 - Javascript

This may be helpful (though not a complete response) - I used it to disable input in a recent project:

document.getElementById('Object').readOnly = true;
	document.getElementById('Object').style.backgroundColor = '#e6e6e6';
	document.getElementById('Object').onfocus = function(){
		document.getElementById('Object').blur();
	};

The user focuses on the input when the click in it, the blur() function then removes the focus. Between this, setting the readOnly to "True" and setting the background color to grey (#e6e6e6), your user shouldn't get confused.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1213707View Question on Stackoverflow
Solution 1 - JavascriptcaniView Answer on Stackoverflow
Solution 2 - JavascriptOrwellophileView Answer on Stackoverflow
Solution 3 - JavascriptrtconnerView Answer on Stackoverflow
Solution 4 - JavascriptsinfereView Answer on Stackoverflow
Solution 5 - JavascriptwupengView Answer on Stackoverflow
Solution 6 - JavascriptMichael McGettrickView Answer on Stackoverflow