jquery:如何在此脚本中为复选框和无线电添加验证?

时间:2012-05-13 03:33:43

标签: jquery

我正在为一个需要一些特殊验证代码的客户端开发应用程序。我很接近,但我坚持使用复选框无线电按钮验证。我使用下面的代码来查找和过滤可见字段集中的必填字段。

以为我可以在同一个jquery查找/过滤器中包含我的输入:复选框字段,但检查和无线电的验证不适用于[return $ .trim($(this).val())=== ] “”。一些我如何在查找/过滤器中包含 not:checked 并将结果包含在我的错误消息中

如何为未选中/已选中但必需的复选框和单选按钮字段添加/添加搜索/验证? [注意:第三个​​文件。我已经在工作了一段时间]

我的jquery:

<script type="text/javascript">
            $(document).ready(function() {
                $('fieldset#section-11,fieldset#section-12,fieldset#section-13').hide(); 
            });//end of close all fieldsets


            $(document).ready(function() {
                var projType = new Array(
                        {value : 'Cars', sect_id : 'fieldset#section-11'},
                        {value : 'Planes', sect_id : 'fieldset#section-12'},
                        {value : 'Boats', sect_id : 'fieldset#section-13'}
                    ); //end of projType array

            $("select#1169").on('change',function () {
                var dropDownVal = $(this).val();
                var sect_id ="";
                    $(projType).each(function() {
                        $(this.sect_id).hide(); //hide all section each time you run thru here
                            if(this.value == dropDownVal) 
                                {
                                    $(this.sect_id).show();
                                }
                    });
            });
            });
$(document).ready(function(){
    $("#btnCatchReqFlds").on('click', function(){
        $("#holdErrMsg").empty();
        var reqButEmpty = $('fieldset:visible').find('input[type="text"][class*="-required"],textarea[class*="-required"],select[class*="-required"]').filter(function() 
            {
                    return $.trim($(this).val()) === "";
            });
                    if(reqButEmpty.length>0)
                        {
                            reqButEmpty.each(function() {
                                $('#holdErrMsg').append("Please fill in the " + this.name + "<br />"); 
                            });
                        }
                    return !reqButEmpty.length;
                });
        });

        </script>

我的html&gt;&gt;

<form method="post" action="">
    <div id="holdErrMsg"></div>
    <fieldset id="mainSection" name="mainSection">
                <legend style="color:blue; font-weight:bold">Project Overview Section</legend>

                <table style="width: 100%">
                    <tr>
                        <td style="height: 33px; width: 178px;">Name</td>
                        <td style="height: 33px"><input  id="1125" name="1125" class="1125-required" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="height: 33px; width: 178px;">Email</td>
                        <td style="height: 33px"><input id="1026" name="1026" class="1026-required" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="width: 178px">Product Title</td>
                        <td><input  id="1089" name="1089" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="width: 178px">Product Type</td>
                        <td><select id="1169" name="1169">
                        <option value="">Select</option>
                        <option value="Cars">Cars</option>
                        <option value="Boats">Boats</option>
                        <option value="Planes">Planes</option>
                        </select></td>
                    </tr>
                                        <tr><td>
                                        <button id="btnCatchReqFlds" type="button" name="btn">Check Required Fields</button>
                                        </td></tr>
                                    </table>
            </fieldset>

            <fieldset id="section-11" name="section-11">
                <legend style="color:fuchsia; font-weight:bold">Car Details Section</legend>

                <table cellpadding="2" style="width: 100%">
                    <tr>
                        <td style="width: 334px; height: 35px"><label>Size:*</label></td>
                        <td style="height: 35px"><input id="1245" class="1245-required" name="1245" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="height: 35px; width: 334px">Color:*</td>
                        <td style="height: 35px">
                        <select id="1433" class="1433-required" name="1433">
                        <option value="">Select</option>
                        <option value="Orange">Orange</option>
                        <option value="Blank">Blank</option>
                        <option value="Green">Green</option>
            </select></td>
                    </tr>
                    <tr>
                        <td style="width: 334px">Description:</td>
                        <td>
                        <textarea id="1290" name="1290" class="1290-required" rows="2" style="width: 433px"></textarea></td>
                    </tr>
                </table>
                            </fieldset>

            <fieldset id="section-12" name="section-12">
                <legend style="color:fuchsia; font-weight:bold">Plane Details Section</legend>

                <table cellpadding="2" style="width: 100%">
                    <tr>
                        <td style="width: 334px; height: 35px"><label>Size:</label></td>
                        <td style="height: 35px"><input id="1245" name="1245" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="height: 35px; width: 334px">Color*:</td>
                        <td style="height: 35px">
                                                <input type="checkbox" name="1433[]" id="1433[]" value="Orange" class="1433[]-required"/>Orange
                                                <input type="checkbox" name="1433[]" id="1433[]" value="Blue" class="1433[]-required"/>Blue
                                                <input type="checkbox" name="1433[]" id="1433[]" value="Green" class="1433[]-required"/>Green
                        </td>
                    </tr>
                    <tr>
                        <td style="width: 334px">Description:</td>
                        <td>
                        <textarea id="1290" name="1290" rows="2" style="width: 433px"></textarea></td>
                    </tr>
                </table>
                            </fieldset>
            <fieldset id="section-13" name="section-13">
                <legend style="color:fuchsia; font-weight:bold">Boat Details Section</legend>

                <table cellpadding="2" style="width: 100%">
                    <tr>
                        <td style="width: 334px; height: 35px"><label>Size:</label></td>
                        <td style="height: 35px"><input id="1245" name="1245" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="height: 35px; width: 334px">Color:*</td>
                        <td style="height: 35px">
                                                <input type="radio" name="1834[]" id="1834[]" value="None" class="valuetext" class="1834[]-required">None
                                                <input type="radio" name="1834[]" id="1834[]" value="All" class="valuetext" class="1834[]-required">All
                       </td>
                    </tr>
                    <tr>
                        <td style="width: 334px">Description:</td>
                        <td>
                        <textarea id="1290" name="1290" rows="2" style="width: 433px"></textarea></td>
                    </tr>
                </table>
                            </fieldset><br>
<fieldset id="section-1011" name="section-1011">
                <legend style="color:green; font-weight:bold">Misc Info Section</legend>

                <table cellpadding="2" style="width: 100%">
                    <tr>
                        <td style="width: 334px; height: 35px"><label>Size:</label></td>
                        <td style="height: 35px"><input id="1301" name="1301" type="text" /></td>
                    </tr>
                    <tr>
                        <td style="height: 35px; width: 334px">Color:</td>
                        <td style="height: 35px">
                        <select id="1302" name="1302">
                <option value="Orange">Orange</option>
                        <option value="Blank">Blank</option>
                        <option value="Green">Green</option>
            </select></td>
                    </tr>
                    <tr>
                        <td style="width: 334px">Description:</td>
                        <td>
                        <textarea id="1303" name="1303" class="1303-required" rows="2" style="width: 433px"></textarea></td>
                    </tr>
                </table>
                            </fieldset>


</form>​
        <?php
        // put your code here
        ?>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

Hiya 在您的代码中进行了演示http://jsfiddle.net/MfVJT/

使用验证插件的简单演示 http://jsfiddle.net/9jSGN/

现在它将在代码中检测1433即您的验证复选框。请告诉我。

只是一个建议 :)我不确定您是否正在为您的需求重新编写验证插件,但请在此处查看:http://docs.jquery.com/Plugins/Validation/

希望这会有所帮助,请让我知道它是怎么回事,这应该有帮助,问题是字段设置关闭标记。

$("#signupForm").validate({
    rules:{
        termsConditions : "required"
    }

});