1

フォーム入力の検証をいじっています。

今のところ、入力後にメッセージを表示することを楽しんでいます。after() メソッドを使用して簡単なテキストを表示していますが、意図的にボックスを間違えると、メッセージが完全に表示されます。

ただし、意図的にもう一度間違えると、最初のエラー メッセージの後に同じメッセージがすぐに追加されます。

オリジナルに代わる方法はありますか?元のエラー メッセージを探して削除し、同じメッセージを再度挿入するコードを追加する必要はありませんでした。

必要ならそうしますが、最初に聞いてみようと思いました。

これが私のコードです:

<script language="javascript" type="text/javascript">
$(document).ready(function(){

  $("form#testform").submit(function(){
     if($("#fieldname1").val().length < 5){ $("#fieldone").after("<div>not enough characters</div>"); }
  });return false;


});
</script>

<form id="testform" method="post">         
<table>
    <tr>
        <td style="width:100px;">Field One:</td>
        <td><input type="text" name="fieldname1" id="fieldname1" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit" /></td>
    </tr>
</table>
</form>
4

2 に答える 2

0

追加する要素に id "fieldone" を追加する必要があります。投稿したコードから欠落しています。

編集:あなたが最初にそこに着いたビームライダー:) +1

于 2010-05-27T00:02:04.277 に答える
0

このようなことをするのが理想的だと思います:

$('#fieldname1').change(function()
{
     if($(this).val().length < 5 && $(this).parent().find('div').length == 0)
        $(this).after('<div>My Content</div>');
});

ツリーを親 (<td>) まで検索し、div の子が見つかった場合は、メッセージが既に存在することがわかります。それ以外の場合は、追加してください。

さて、HTML の構造を少し変える方が良いと思いますが、それは別の議論です。

于 2010-05-27T00:02:50.973 に答える