出乎意料的是,jquery验证只显示了第一个必需的消息

时间:2012-12-11 16:27:52

标签: jquery validation

我没有像项目中的$(sth)validate {}那样做,它像我预期的那样工作但是在另一个项目中我只能看到一条验证错误消息,第一个,然后我填写它,然后单击提交按钮,它不检查其他输入:

我自己的功能在下面,我可以在输入“名字”的值后看到“这里”,但如果我不输入中间名和姓氏,我需要错误信息。

function assembleAndSaveContact(){

if($("form#form_validation_reg_generate_contact").valid()){
console.log('here');
}
}

xhtml代码:

<!-- validation -->
<script src='#{applicationBean.resourcePath}/admin/lib/validation/jquery.validate.min.js'></script>
<!-- sticky messages -->
<script src='#{applicationBean.resourcePath}/admin/lib/sticky/sticky.min.js'></script>
<script src="#{applicationBean.resourcePath}/admin/bootstrap/js/bootstrap.min.js"></script>
<li><a onclick="assembleAndSaveContact();" class="btn-mini" href="#" style="float: left;"><i class="splashy-mail_light_new_2"></i>Save and Close </a></li>
<fieldset>
    <form id="form_validation_reg_generate_contact">
         Profile
        <div style="clear: both; height: 1px; background: #CCCCCC;margin-bottom: 6px; margin-top: 6px">
        </div>
        <div class="control-group" style="margin-bottom: 6px">
            <div class="span4" style="margin: 0px">
                <label class="control_label_compose"><a data-toggle="modal" href="#adrBook">First Name</a></label>
            </div>
            <div class="span8" style="margin: 0px">
                <input class="span12 required" type="text" id="firstName"/>
            </div>
        </div>
        <div class="control-group" style="margin-bottom: 6px">
            <div class="span4" style="margin: 0px">
                <label class="control_label_compose"><a data-toggle="modal" href="#adrBook">Middle Name</a></label>
            </div>
            <div class="span8" style="margin: 0px">
                <input class="required span12" type="text" id="middleName"/>
            </div>
        </div>
        <div class="control-group" style="margin-bottom: 6px">
            <div class="span4" style="margin: 0px">
                <label class="control_label_compose"><a data-toggle="modal" href="#adrBook">Last Name</a></label>
            </div>
            <div class="span8" style="margin: 0px">
                <input class="span12 required" type="text" id="lastName"/>
            </div>
        </div>
    </form>
</fieldset>

1 个答案:

答案 0 :(得分:0)

为了使验证插件正常工作,每个输入必须具有name属性。如果您为每个表单元素添加唯一的name属性,则所有内容都将开始工作。

即。将表单元素更改为如下所示:

<input class="span12 required" type="text" name="firstName" id="firstName"/>
<input class="required span12" type="text" name="middleName" id="middleName"/>
<input class="span12 required" type="text" name="lastName" id="lastName"/>

在此处查看:http://jsfiddle.net/ryleyb/B78Wt/