如何使用jQuery验证插件来验证具有此特定约束的表单?

zzlelutf  于 5个月前  发布在  jQuery
关注(0)|答案(1)|浏览(73)

此问题在此处已有答案

jQuery Validate plugin, one out of two fields is required(2个答案)
8年前就关门了。
我是jQuery的新手,我有以下与表单验证相关的问题。
所以我想不要自己写验证器,而是使用jQuery验证插件,这个:http://jqueryvalidation.org/
据我所知,它为我提供了内置的**required()**方法,使特定的字段成为必需的(如果用户没有为该字段插入值,则会显示错误消息)。
好吧,我的问题是,在我的形式,我有这样的东西:

<form method="post" action="consultazioneRicercaForm" id="consultazioneRicercaForm">

    <div class="row">
        <div class="col-md-4">

            <label style="display: block;">Regioni:</label>
            <select name="regioneSelezionata" id="selReg">
                <option value="-">--SELEZIONARE UNA REGIONE--</option>
                <option value="AB">ABRUZZO</option><option value="BA">BASILICATA</option><option value="CA">CAMPANIA</option><option value="CL">CALABRIA</option><option value="EE">REGIONE ESTERA</option><option value="EM">EMILIA ROMAGNA</option><option value="FR">FRIULI-VENEZIA GIULIA</option><option value="LA">LAZIO</option><option value="LI">LIGURIA</option><option value="LO">LOMBARDIA</option><option value="MA">MARCHE</option><option value="MO">MOLISE</option><option value="PI">PIEMONTE</option><option value="PU">PUGLIA</option><option value="SA">SARDEGNA</option><option value="SI">SICILIA</option><option value="TO">TOSCANA</option><option value="TR">TRENTINO-ALTO ADIGE</option><option value="UM">UMBRIA</option><option value="VA">VALLE D' AOSTA</option><option value="VE">VENETO</option>
            </select>
        </div>

        <div class="col-md-4">
            <label style="display: block;">Province:</label>
            <select name="provinciaSelezionata" id="selProv"><option value="">--SELEZIONARE UNA PROVINCIA--</option></select>
        </div>

        <div class="col-md-4">
        </div>

    </div>

    <div style="margin-top: 30px;" class="row">
        <div class="col-md-4">
            <label style="display: block;">Codice Meccanografico:</label>
            <input type="text" value="" name="codMec" id="selCodMec">
            </div>

            <div class="col-md-4">
                <label style="display: block;">Tipologia Progetto:</label>
                <select name="tipologiaProgettoSelezionato" id="selTipologiaProgetto">
                    <option value="-">--TIPOLOGIA--</option>
                    <option value="WIFI">WIFI</option><option value="LIM">LIM</option><option value="Altro">Altro</option><option value="Classi 2.0">Classi 2.0</option><option value="Scuola 2.0">Scuola 2.0</option><option value="CSD">CSD</option>
                </select>

            </div>

            <div class="col-md-4">
                <label style="display: block;">Stato Progetto:</label>
                <select name="statoProgettoSelezionato" id="selStatoProgetto">
                    <option value="-">--STATO PROGETTO--</option>
                    <option value="Da compilare">Da compilare</option><option value="In lavorazione">In lavorazione</option><option value="Da validare">Da validare</option><option value="Validato">Validato</option><option value="Rendicontato pregresso">Rendicontato pregresso</option>
                </select>

            </div>

        </div>

        <div style="margin-top: 30px;" class="row">
            <div class="col-md-12">
                <input type="submit" value="Cerca">
            </div>
        </div>
</form>

字符串
正如你所看到的,它包含一些字段,其中有id=“selReg”id=“selCodMec”
因此,我的验证仅关注前2个字段,特别是如果字段具有**id=“selReg”或字段具有id=“selCodMec”设置了值,则表单可以被视为有效。因此,如果用户至少对这2个字段中的一个进行了评估,则表单被视为有效。
我认为在这种情况下,我不能使用
required()**方法,因为在我看来,required()方法是在特定字段上引用的,并且没有实现前面的逻辑。
如何解决这个问题?我可以使用这个
JQuery验证插件
吗?

kognpnkq

kognpnkq1#

我在我的一个项目中也使用了jQuery验证。
尝试添加自己的验证规则:

$.validator.addMehtod('oneOrOther',function(value) {
  if(!$("#selReg").val() && !$("#selCodMec").val())
    return false;
  else
    return true;
});

字符串
将验证分配给字段:

$("#consultazioneRicercaForm").validate({
  ...
  rules: {
    regioneSelezionata: {
      oneOrOther: true
    }
   ...
  }
});


我希望我正确理解了你的问题。

相关问题