98
document.getElementById(frmObj.id).value="";
document.getElementById(frmObj.id).autofocus;
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed";

上記のコードでは、フォームオブジェクトの値は完全にに設定されて""いますが、テキストボックスにカーソルがありません。そこにカーソルを置きたい。focus()その入力ボックスに焦点を合わせるだけで、実際にはカーソルを設定しません。

4

8 に答える 8

125

JavaScriptでは、最初にコントロールに焦点を合わせてから、コントロールを選択してカーソルを texbox に表示します...

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

またはjQueryを使用して

$("#textboxID").focus();
于 2012-06-05T09:23:31.643 に答える
8

テキスト フィールドにフォーカスがあってもカーソルがない場合があります。この場合、次のようにします。

document.getElementById(frmObj.id).select();
于 2012-06-05T09:22:20.243 に答える
5

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

于 2016-01-31T01:00:34.407 に答える
1

フォームを送信してページをリロードするか、ページに埋め込まれた PDF のようなオブジェクトがあり、フォーカスを盗んでいる可能性があります。

これは、フォームを検証するための標準的な単純な JavaScript メソッドです。インライン スクリプトを削除する onubtrusive JS で改善できますが、これが出発点です。

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
}
#errorMsg { color:red }
<form onsubmit="return validate(this)">
  <input type="text" name="quantity" value="" />
  <input type="submit" />
</form>
<span id="errorMsg"></span>

于 2012-06-05T09:56:29.677 に答える