私は登録フォームをATMにしていますので、JavaScriptのコードをリアルタイムでチェックするために余分なJavaScriptコードを除いて今のようにしたいと思います。(onmouseover、onmouseout、 onblurなど)。
小さなサンプル:指定された要素(最初のパラメータ)の値が第2のパラメータ(デフォルト値)に一致するか第三のパラメータよりも短い場合javascriptのトリガー機能はスクリプトからのイベントではなく、明示的にhtmlから
<tr>
<td>
<label for="name"
onmouseover="fieldSelected('name', '', 3);"
onmouseout="checkValue('name', '', 3);">
Enter your name:
</label>
</td>
<td>
<input type="text"
id="name"
name="name"
onmouseover="fieldSelected('name', '', 3);"
onmouseout="checkValue('name', '', 3);"
onblur="checkValue('name', '', 3);">
</td>
</tr>
fieldSelectedフィールドの背景が黄色になります。
ラベルまたは入力フィールドをマウスオーバーすると、最初にbgが黄色に変更され、次に赤色に変更されます(何も入力していないため)。
checkValueは、値に応じてフィールドの背景を赤または緑に変更します(同じパラメータ)。
入力フィールドに何かを入力し、別のフィールドに切り替えて背景色を変更します。
ここで気づくように、すぐにたくさんのJavaScript関数呼び出しがあります(入力/選択フィールドごとに5つ)。もし誰かがこれらのイベントトリガーを別の場所(通常はこれをコードしないのですが)に貼り付ける方法を知っているなら、このような形式ではなく、一度に複数のIDに直接接続するのがよいでしょう。私はここでjQueryを持っていますが、私は実際にはJavaScriptの専門家ではありません。
これを行う簡単な方法がありますか?インタラクティブ性を最大限に高めるために、すべてのイベントでフィールドの背景色を変更したいと考えています。確かに、すべてのデータがサーバー側に送られるときはそれほど大したことではありませんが、私はそのようにしたいだけです。あなたはインライン展開と離れて行うことができる。例えば
何とかうまくいきません... http://jsfiddle.net/XdzeX/6/ 本当にいいウェブサイトです:) – jurchiks
それは_mostly_動いています(rev#7を参照) - あなたは2つの関数で間違ったパラメータ名を持っていました。私はまだ赤は見ていない。 – Alnitak
これはfiddleで動作します。http://jsfiddle.net/T6vvN/8/ 実際のサイトで何が起こるかを確認します。 – jurchiks