【问题标题】:Check multiple form input value are not empty检查多个表单输入值不为空
【发布时间】:2016-02-06 08:45:49
【问题描述】:

我需要实现检查表单输入是否为空。如果表单值为空,则突出显示输入字段和表单,否则表单字段和输入不会突出显示。

如果所有表单和输入都不为空,我需要为每个表单一个一个调用 AJAX。我尝试了以下代码,但没有得到正确的输入。

我的 HTML

    <div id="entrycontloop">                            
        <form action="" class="form-inline multipleformgrp" method="POST" enctype="multipart/form-data" autocomplete="off" >                    
            <div class="form-group">
                <label for="firstname">First Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="firstname" name="firstname" value="" placeholder="Firstname *" >
            </div>
            <div class="form-group">
                <label for="lastname">Last Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="lastname" name="lastname" value="" placeholder="Lastname *">
            </div>              
        </form>             
        <form action="" class="form-inline multipleplayerformgrp" method="POST" enctype="multipart/form-data" autocomplete="off">                   
            <div class="form-group">
                <label for="firstname">First Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="firstname" name="firstname" value="" placeholder="Firstname *" >
            </div>
            <div class="form-group">
                <label for="lastname">Last Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="lastname" name="lastname" value="" placeholder="Lastname *">
            </div>              
        </form>             
    </div>

jQuery

    <script>
        $(document).on('click','.submitallplayerbtn',function(){    

            var AddPlayerChk = true;
            var FormCount  = $('#entrycontloop .multipleformgrp').length;   

            $('#entrycontloop .multipleformgrp').each(function(){   

                var $thisform = $(this);    
                $thisform.css('border','0px solid red');
                $thisform.find('input').css('border','1px solid #d6d6d6');

                var lastname  = $thisform.find("#lastname").val();  

                if(firstname==''){
                    $thisform.find("#firstname").focus();
                    $thisform.find("#firstname").css('border','1px solid red');
                    AddPlayerChk = false;
                }
                if(lastname==''){
                    $thisform.find("#lastname").focus();
                    $thisform.find("#lastname").css('border','1px solid red');
                    AddPlayerChk = false;
                }

                if(AddPlayerChk){           
                    $thisform.closest('.multipleplayerformgrp').css('border','0px solid red');              
                }else{          
                    $thisform.closest('.multipleplayerformgrp').css('border','1px solid red');      
                }   

            }); 
                if(AddPlayerChk){           
                    return false;
                }else{
                    alert('ajax call');
                }
        });
    </script>

【问题讨论】:

    标签: jquery html forms


    【解决方案1】:

    HTML

    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <div id="entrycontloop">                            
        <form action="" class="form-inline multipleformgrp" method="POST" enctype="multipart/form-data" autocomplete="off" >                    
            <div class="form-group">
                <label for="firstname">First Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="firstname" name="firstname" value="" placeholder="Firstname *" >
            </div>
            <div class="form-group">
                <label for="lastname">Last Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="mandatory form-control ampl_width90"  maxlength="25" id="lastname" name="lastname" value="" placeholder="Lastname *">
            </div>              
        </form>             
        <form action="" class="form-inline multipleplayerformgrp" method="POST" enctype="multipart/form-data" autocomplete="off">                   
            <div class="form-group">
                <label for="firstname">First Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="form-control ampl_width90" maxlength="25" id="firstname" name="firstname" value="" placeholder="Firstname *" >
            </div>
            <div class="form-group">
                <label for="lastname">Last Name<span class="cs_mandatory">*</span></label>
                <input type="text" class="mandatory form-control ampl_width90" maxlength="25" id="lastname" name="lastname" value="" placeholder="Lastname *">
            </div>              
        </form>  
        <button class="submitallplayerbtn">Submit</>           
    </div>   
    

    jquery

    <script>
        $(document).on('click','.submitallplayerbtn',function(){   
            $forms=$('form');
            var allvalid=true;
            $($forms).each(function(index,$form){
                $inputs=$($form).find('input');
    
                $($inputs).each(function(index,$input){
                    if($($input).val()=="" && $($input).hasClass('mandatory'))
                    {
    
                        $($input).css('border','1px solid red');
                        allvalid=false;
    
                    }
                    else
                    {
                        $($input).css('border','1px solid black');
                    }
                });
            });''
            if(!allvalid)
            {
                return false;
            }
            else
            {
                alert('ajaxcall');
            }
    
        });
    
    </script>
    

    这可能对您有用,如果您需要删除其空值上的红色,请使用更改事件和一个通知器来操作输入。

    【讨论】:

    • 谢谢@VeshrajJoshi。有些字段不是强制性的。如何离开那些字段?
    • 我需要突出显示空输入字段表单。它不工作。你能检查一下吗?
    • 高亮是什么意思......有红色边框颜色正确,我只是根据您的要求编辑我的答案......姓氏以红色突出显示,请检查您的浏览器,
    • 我想突出显示具有空输入字段的单个表单。在我的代码中,我使用了这个 $thisform.closest('.multipleplayerformgrp').css('border','1px solid red'); .但它不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2013-10-29
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多