2012-06-05 15 views
40
document.getElementById(frmObj.id).value=""; 
document.getElementById(frmObj.id).autofocus; 
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed"; 

フォームオブジェクトの値は完全に""に設定されていますが、テキストボックスにカーソルはありません。私はそこにカーソルを置いておきたい。 focus()はその入力ボックスにのみフォーカスを合わせますが、実際にはカーソルを設定しません。どのようにJavaScriptを入力ボックスにカーソルを設定するには?

+1

'document.getElementById(fieldID).focus();'は、ページのフォーカスを取得している以外は、フォームフィールドに点滅カーソルを置きます。 .autofocusを使ったステートメントは何もしません。 – mplungjan

+1

'.focus()'はカーソルを設定します。これはフォーカス動作の全体的な意味です。 –

+1

フォーカスがうまくいかない場合は、クリックしてみてください。 –

答えて

54

...

document.getElementById(frmObj.id).focus(); 
document.getElementById(frmObj.id).select(); 

またはのjQueryを使用して:この場合、あなたはこれを行うだろうあなたは を助けるために十分なコードを提供していない

$("#textboxID").focus(); 
+6

選択の必要はありません。彼のコードで何か他のことが起こっています。おそらく埋め込まれたPDFまたは同様の – mplungjan

+0

私はそのカーソルがテキストボックスにある必要があります。私は値を入力するテキストボックスをクリックしてはいけません。 –

+3

@downvoter:わからない、どうしたい? – Talha

4

フォーカスを取得してもテキストフィールドにカーソルが表示されないことがあります。 管理上およびtexboxにカーソルを表示するためのコントロールを選択するよりはJavaScript第1焦点に

document.getElementById(frmObj.id).select(); 
+0

はい、これは正しい時です。.focus()が動作しない場合、$( "element")[0] .select()を使用してカーソルを取得する必要があります –

+1

またはel.setSelectionRange(el .value.length、el.value。長さ)。行の最後にカーソルを移動します。 – Vector

+0

注: 'setSelectionRange'は' 'には作用しません – Vandesh

1

あなた可能性がsubmフォームを作成してページをリロードするか、フォーカスを奪う埋め込みPDFのようなページ上にオブジェクトがあります。ここ

は、インラインスクリプトが削除されたonubtrusive JSで改善することができるが、これはここでは出発点DEMO

function validate(formObj) { 
    document.getElementById("errorMsg").innerHTML = "";  
    var quantity = formObj.quantity; 
    if (isNaN(quantity)) { 
    quantity.value=""; 
    quantity.focus(); 
    document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed"; 
    return false; 
    } 
    return true; // allow submit 
} 

はHTML

されるJavaScriptのフォーム を検証する方法正規普通です
<form onsubmit="return validate(this)"> 
    <input type="text" name="quantity" value="" /> 
    <input type="submit" /> 
</form>  
<span id="errorMsg"></span> 
23

私はこれがかなり古い質問であることを認識していますが、誰かを助ける可能性のある同様の問題に対する「愚かな」解決策があります。

私は(jQueryのでフォーカス法による)を選択して表示されるテキストボックスと同じ問題を経験したが、中にカーソルを取りませんでした。

事実が、私が見てデバッガウィンドウが開いていたということです何が起きているのですか?THATウィンドウがフォーカスを奪っていました。解決策は非常に簡単です:デバッガを閉じて、すべて正常です...テストに1時間を費やしました!

+1

これを書く時間をとってくれてありがとう!これはまさに私の問題でした。おそらくあなたは私に1トンの時間を節約しました。 – JoeRocc

+0

私は ''要素をフォーカス可能にしようとしていましたが、これが問題になっていました(私が最初に受け入れた答えをスクロールしてうれしい)。私はまた、デフォルトでは(ブラウザ固有のように見える)[フォーカス可能でないHTML要素がある]ことを発見しました(http://stackoverflow.com/a/1600194/1052906)。 ''要素は、Chrome(バージョン57)が開発者ツールウィンドウに焦点を当てた理由の1つです。 – larrylampco

+0

私は1時間を保存していただきありがとうございます:D –

2

あなたがユーザインタラクションとして.onmousedownを使用している場合は、あなたを噛んでしまう可能性があります。あなたがそれをした後、すぐにフィールドを選択しようとすると、それは起こりません。マウスは他の何かに押されているのでです。したがって、フォーカスを変更しようとするとマウスがクリックされていない状態になっているので、とビオラ(focus())に変わります。

関連する問題