Javascript jQuery获取具有特定参数的子元素数

Javascript jQuery获取具有特定参数的子元素数,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有下面一段代码,在提交表单时执行。然而,以下逻辑是不正确的,因为其目的是开发一个通用函数,该函数适用于我的DOM中的所有表单。在一次又一次的失败之后,我最终创建了这个函数,该函数特定于一个this表单,用于验证表单中输入字段的值是否与其自定义deffal属性相同,如果相同,表单将停止提交,并弹出一条错误消息 我的问题是:如何检查表单中的任何子元素是否满足特定参数,例如作为输入字段并使其.val()=.attr('deffal') 我已经尝试过使用.find()、.children()和.chi

我有下面一段代码,在提交表单时执行。然而,以下逻辑是不正确的,因为其目的是开发一个通用函数,该函数适用于我的DOM中的所有表单。在一次又一次的失败之后,我最终创建了这个函数,该函数特定于一个this表单,用于验证表单中输入字段的值是否与其自定义deffal属性相同,如果相同,表单将停止提交,并弹出一条错误消息

我的问题是:如何检查表单中的任何子元素是否满足特定参数,例如作为输入字段并使其.val()=.attr('deffal')

我已经尝试过使用.find()、.children()和.childNode功能。谁能给我一个好的解决方案,如果可能的话,解释一下你的代码

HTML:



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();
    }
});
$('form').submit(function(e){
    var elems=$(this).find('input[defval]');
    var errWrapper=$(this).find('p.jQueryErr');
    for( var i=0; i<elems.length; i++ ){
        if( $(elems[i]).val()==$(elems[i]).attr('defVal') ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error:: invalid username/password</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }else if( $(elems[i]).val().length<8 ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error::'+ $(elems[i]).attr('defVal') +'::is too short!</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }
    }
});
$('div.login').ready(函数(){
$('div.login form')。提交(函数(e){
if($('div.login表单输入').val()==$('div.login表单输入').attr('deffal')){
var numMsgs=$('div.login form').children();
如果(numsgs.length尝试(此模式)

jshiddle

尝试(此模式)

jshiddle

尝试(此模式)

jshiddle

尝试(此模式)


jshiddle

在熟睡之后,我终于完成了任务。我对html做了一些更改。无论如何,谢谢你的建议,因为它非常有用,实际上给了我一些启发

HTML:



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();
    }
});
$('form').submit(function(e){
    var elems=$(this).find('input[defval]');
    var errWrapper=$(this).find('p.jQueryErr');
    for( var i=0; i<elems.length; i++ ){
        if( $(elems[i]).val()==$(elems[i]).attr('defVal') ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error:: invalid username/password</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }else if( $(elems[i]).val().length<8 ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error::'+ $(elems[i]).attr('defVal') +'::is too short!</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }
    }
});
$('form')。提交(函数(e){
var elems=$(this.find('input[deffal]');
var errWrapper=$(this.find('p.jqueryer');

对于(var i=0;i在熟睡了这个主题之后,我终于完成了这个任务。我对html做了一些更改。无论如何,谢谢你的建议,因为它非常有用,实际上给了我一些启发

HTML:



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();
    }
});
$('form').submit(function(e){
    var elems=$(this).find('input[defval]');
    var errWrapper=$(this).find('p.jQueryErr');
    for( var i=0; i<elems.length; i++ ){
        if( $(elems[i]).val()==$(elems[i]).attr('defVal') ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error:: invalid username/password</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }else if( $(elems[i]).val().length<8 ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error::'+ $(elems[i]).attr('defVal') +'::is too short!</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }
    }
});
$('form')。提交(函数(e){
var elems=$(this.find('input[deffal]');
var errWrapper=$(this.find('p.jqueryer');

对于(var i=0;i在熟睡了这个主题之后,我终于完成了这个任务。我对html做了一些更改。无论如何,谢谢你的建议,因为它非常有用,实际上给了我一些启发

HTML:



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();
    }
});
$('form').submit(function(e){
    var elems=$(this).find('input[defval]');
    var errWrapper=$(this).find('p.jQueryErr');
    for( var i=0; i<elems.length; i++ ){
        if( $(elems[i]).val()==$(elems[i]).attr('defVal') ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error:: invalid username/password</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }else if( $(elems[i]).val().length<8 ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error::'+ $(elems[i]).attr('defVal') +'::is too short!</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }
    }
});
$('form')。提交(函数(e){
var elems=$(this.find('input[deffal]');
var errWrapper=$(this.find('p.jqueryer');

对于(var i=0;i在熟睡了这个主题之后,我终于完成了这个任务。我对html做了一些更改。无论如何,谢谢你的建议,因为它非常有用,实际上给了我一些启发

HTML:



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();
    }
});
$('form').submit(function(e){
    var elems=$(this).find('input[defval]');
    var errWrapper=$(this).find('p.jQueryErr');
    for( var i=0; i<elems.length; i++ ){
        if( $(elems[i]).val()==$(elems[i]).attr('defVal') ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error:: invalid username/password</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }else if( $(elems[i]).val().length<8 ){
            $(errWrapper[0]).html('<a class="sysMsg errWarning" href="#">error::'+ $(elems[i]).attr('defVal') +'::is too short!</a>');
            var formSysMsg=$('p.jQueryErr a.sysMsg');
            $(formSysMsg[0]).fadeIn(300).delay(5000).fadeOut(300);
            e.preventDefault();
            break;
        }
    }
});
$('form')。提交(函数(e){
var elems=$(this.find('input[deffal]');
var errWrapper=$(this.find('p.jqueryer');

对于(var i=0;这是我能想到的唯一方法。它应该有效。这是我能想到的唯一方法。它应该有效。这是我能想到的唯一方法。它应该有效。这是我能想到的唯一方法。它应该有效。