题
我正在使用验证表单输入。
现在,我只是在输入之后显示一条消息很有趣。我正在使用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> </td>
<td><input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</form>
解决方案
我想这样做是理想的:
$('#fieldname1').change(function()
{
if($(this).val().length < 5 && $(this).parent().find('div').length == 0)
$(this).after('<div>My Content</div>');
});
您向父母查找树(u003Ctd> ),然后如果您找到一个Div孩子,您知道该消息已经存在。否则,添加。
现在,我认为一个更好的选择是以不同的方式构造您的HTML,但这是一个不同的讨论。
其他提示
您需要将ID“ FieldOne”添加到您要添加到的元素中,从您发布的那个代码中缺少它。
编辑:beamrider你先到达那里:) +1
不隶属于 StackOverflow