1

投稿する前にJavaScriptでいくつかの検証を実行したいので、基本的には次のことを行います。

  1. テキストボックスの値を変更する
  2. テキストボックスに添付された Onchange を使用して、Javascript スクリプトを起動します。
  3. スクリプトは、コロンが値の正しい場所にあることを確認します。
  4. そうでない場合は、テキスト ボックスの背景色を赤に変更します。
  5. これはすべて、Struts フォームおよびアクションでの二次検証の前に行われます。

最初の問題は、テキストボックスの値をスクリプトに渡すことができないように見えることです.これはストラットで防止されていますか? 2番目の問題は、エラー時にテキストボックスの背景色が変わることです。

<html:text property="date1_1" maxlength="8" value="<%=WeekOne.get(1)%>" size="15" onchange="validateBox(this.value)"/>
<script type="text/javascript">
        function validateBox(textBox)
        {
            alert("here");
            var p = textBox.value();
            alert(p);               
        }
</script>
4

1 に答える 1

0

問題を解決するには、コード内のいくつかのエラーを修正する必要があります。数字で書いたことを達成しようとして、何を修正するかを示します。

  1. テキストボックスの値を変更するには、値ではなくテキストボックス要素自体を渡す必要があります。
  2. あなたはすでにそれを使用しています
  3. テキストボックスの値に対してスクリプトでいくつかのチェックを行う(値は関数ではありません)
  4. このためには、テキストボックスの背景色 CSS プロパティを使用する必要があります
  5. 2 番目の検証がサーバー上にあると仮定し、チェックは JavaScript を介してクライアント上で行われます

例えば

<html:text property="floor" styleClass="input" size="30" tabindex="12" onchange="validateBox(this)"/>
<script type="text/javascript">
  var textBoxBackgroundColor;
  function validateBox(textBox) {
    var p = textBox.value;

    if (textBoxBackgroundColor == null)
      textBoxBackgroundColor = textBox.style.backgroundColor;
    //validate
    if (p < 0)
     textBox.style.backgroundColor = '#000000';
    else
      textBox.style.backgroundColor = textBoxBackgroundColor;
  }
</script>

テキストボックスの床が正であることを確認します。

于 2013-02-07T15:14:41.650 に答える