2012-02-17 15 views
24

私は選択入力のように見えるものを作りたいと思っていますが、実際にはそうではありません。入力テキストに点滅するカーソルを隠す方法は?

<input type="text">を作成しました。

私はbackground-imageを追加しました。これは「選択矢印」を表示し、選択ボックスであるという印象を与えます。

この入力にデフォルト値を追加しました。

私はそれをクリックするとこの入力の下にSlideDown()となる隠れたdivがあります。

値を変更できないように読み込み専用のものを試しましたが、点滅するカーソルが表示されます。

私はdisabledを使用する場合は、点滅カーソルが表示されませんが、jQueryので.click()または.focus機能が動作しません。ドロップダウンメニューはSlideDown()になりません。

点滅するカーソルを表示しないでクリックするにはどうすればよいですか?

は、ここでは、コード

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

試したコードを投稿できますか? – sinemetu1

+2

[可能な解決策](http://stackoverflow.com/questions/3671141/hide-textfield-blinking-cursor) もう1つの解決策は、実際の入力の代わりに入力のように見えるようにスタイル指定されたdivを使用することです。 – approxiblue

+0

@JimmyXはい私はそれについて考えましたが、この入力(選択)はフォームにあり、入力フィールドはお互いのように見えますが、ルールを破ったような気がしませんし、 P – user1213707

答えて

38

カーソルの色は、テキストの色と一致します。

<input type="text" style="color: transparent"> 

実際に入力ボックスにテキストを表示したい場合(私の場合は、一部の人が必要)、テキストシャドーを使用できます。

<style> 
    body, div, input { 
     color: #afa; 
     text-shadow: 0px 0px 1px #fff; 
    } 
<style> 

(FirefoxとSafariでテスト済み)

+8

うわー!どのような素晴らしいアイデア! 'text-shadow:0 0 0 #fff;'と書くことも可能です。これは元の同じ位置に同じ鮮明なテキストを与えます。 –

+5

IE 10で動作しないように見えるhttp://jsfiddle.net/plowdawg/mk77W/黒い点滅カーソルはまだ表示されています。 –

+0

はい、IE 10では動作しません。 – Gavin

9

私はぼかしを使用してカーソルを取り除いたばかりです。

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

これは決して入力を入力したくない場合にはうまくいきます... – corescan

+0

OPが誰にでも入力できるようにしたくないと確信しています。彼は "readonly"を試みたが、まだカーソルが現れていると言った。彼はちょうど私が推測するキーボードナビゲーションのために入力を使用していますが、選択ボックスのように動作するようにします。 –

-12

type = "submit"も追加する必要があります。

+3

気をつけて説明しますか? –

6

私は、これは完璧なソリューションであると思う:広い十分な入力を行い、右画面の権利を合わせ、したがって、まだクリッカブル

perfect solution

0

だながらカーソルおよびコンテンツは、画面の外で見つけ作りますついに私はトリックの解決策を見つけました。

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

と私の引用で、それは動作します!

0

これは(ない完全な応答が)役立つかもしれない - 私は最近のプロジェクトでの入力を無効にするためにそれを使用:

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

ユーザが入力に焦点を当てたときに、その中にクリック、ぼかし()関数はフォーカスを削除します。この間、readOnlyを "True"に設定し、背景色をグレーに設定すると(#e6e6e6)、ユーザは混乱しないようにしてください。

関連する問題