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" 添加到要附加到的元素中,您发布的那段代码中缺少它。

编辑: Beamrider 你先到了 :) +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 回答