0

プロジェクトで $(sth)validate{} のような sth を実行せず、期待どおりに動作していますが、別のプロジェクトでは検証エラー メッセージが 1 つしか表示されません。他の入力をチェックしません:

私自身の機能は以下のとおりです。「名」の値を入力すると「ここ」が表示されますが、ミドルネームと姓も入力しないとエラーメッセージが必要です。

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>
4

1 に答える 1

1

検証プラグインが機能するには、各入力に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/

于 2012-12-11T17:46:40.670 に答える