我有以下代码片段,它是在提交表单时执行的。然而,下面的逻辑是不正确的,因为其意图是开发一个通用函数,它可以用于我的DOM中的所有表单。一旦反复失败,我最终创建了一个特定于此表单的函数,它验证了我表单中输入字段的值是否与它们的自定义defVal属性相同,如果是这样,表单将停止提交,并且错误消息将会弹出。我如何检查我的表单中的任何子元素是否满足特定参数,例如输入字段并具有.val()== .attr('defVal')?jQuery获取具有特定参数的子元素的数量
我已经尝试使用.find(),.children()和.childNode功能。可能有人请建议我一个很好的解决方案,如果可能的话说明你的代码
HTML:
<div class="login" align="center">
<div class="formWrapper">
<form action="index.php?r=backoffice" method="post">
<input type="text" name="USERNAME" required value="username" defval="username" maxlength="16">
<input type="password" name="PASSWORD" required value="password" defval="password" maxlength="16">
<input type="reset" value="reset">
<input type="submit" value="submit">
<hr/>
<a href="#" class="helpLink">Can't log in?</a>
</form>
</div>
<div class="infoWrapper">
<div class="info">
</div>
</div>
的jQuery:
$('div.login').ready(function(){
$('div.login form').submit(function(e){
if($('div.login form input').val()==$('div.login form input').attr('defVal')){
var numMsgs=$('div.login form').children();
if(numMsgs.length<=6){
var formHtml=$('div.login form').html();
$('div.login form').html('<a class="sysMsg" href="#">error::invalid username/password</a>'+formHtml);
$('div.login form a.sysMsg').addClass('errFatal').fadeIn(300).delay(5000).fadeOut(300);
}
e.preventDefault();
}
});
});
这是我能想到的和唯一的方法。它应该工作。 – caspian