>  기사  >  웹 프론트엔드  >  Bootstrap 양식 유효성 검사 formValidation의 자세한 예

Bootstrap 양식 유효성 검사 formValidation의 자세한 예

PHPz
PHPz원래의
2018-05-14 16:39:387692검색

이 글에서는 양식 동적 유효성 검사 기능을 구현하기 위한 Bootstrap 양식 유효성 검사 formValidation을 주로 소개합니다. 필요한 친구는 Bootstrap 튜토리얼

동적 추가를 참조할 수 있습니다. 입력하고 동적으로 새로운 검증 방법을 추가하세요!

초기 상태:

Bootstrap 양식 유효성 검사 formValidation의 자세한 예

"+" 클릭 후:

Bootstrap 양식 유효성 검사 formValidation의 자세한 예

확인 후:

Bootstrap 양식 유효성 검사 formValidation의 자세한 예

지식 포인트:

1 먼저 공식 웹사이트로 이동하여 다운로드하세요: formvalidation.io/

2. 파일을 가져올 때 주의사항에 대해서는 이미 원격검증 글에서 언급했으므로 따로 다루지 않겠습니다.

사용된 키워드 3개: addField, RemoveField, Different

4 공식 웹사이트의 예제 이름은 서로 다릅니다. 나는 여기서 조금 게으른 편이다. 그리고 프로젝트 ajax를 제출할 때 form을 이용하여 제출하는 것이 아니라, 자체적으로 json으로 제출하므로 x와 y의 이름이 동일합니다.

좋은 시작:

먼저 HTML에 addPos로 표시된 "+"가 있어야 하고 그 다음 "removPos로 표시된 "-"가 있어야 합니다.

<p id="posXY" class=" panel panel-default ">
<!-- 添加-->
                <p class="panel-heading" >设置车库xy坐标</p>
                <p class="addPos form-group">
                  <p class="col-lg-4 col-sm-4 col-xs-4" >
                    <input type="text" class="form-control text-left" name="garageNo" placeholder="停车库" style="min-width: 150px"/>
                  </p>
                  <p class="col-lg-3 col-sm-3 col-xs-3" >
                    <input type="text" class="form-control" name="posX" placeholder="X"/>
                  </p>
                  <p class="col-lg-3 col-sm-3 col-xs-3" >
                    <input type="text" class="form-control" name="posY" placeholder="Y"/>
                  </p>
                  <p class="col-lg-2 col-sm-2 col-xs-2" >
                    <button type="button" class="btn btn-default addButtonPos"><i class="glyphicon glyphicon-plus"></i></button>
                  </p>
                </p>
                <!-- 删除 -->
                <p class="removPos form-group hide" id="posTemplate">
                  <p class="col-lg-4 col-sm-4 col-xs-4" >
                    <input type="text" class="form-control text-left" name="garageNo" placeholder="停车库" style="min-width: 150px"/>
                  </p>
                  <p class="col-lg-3 col-sm-3 col-xs-3" >
                    <input type="text" class="form-control" name="posX" placeholder="X"/>
                  </p>
                  <p class="col-lg-3 col-sm-3 col-xs-3" >
                    <input type="text" class="form-control" name="posY" placeholder="Y"/>
                  </p>
                  <p class="col-lg-2 col-sm-2 col-xs-2" >
                    <button type="button" class="btn btn-default removeButtonPos"><i class="glyphicon glyphicon-minus"></i></button>
                  </p>
                </p>
</p>

다음은 js입니다.

/**
   * pos添加
   * @param $that
   */
  function addButtonPosClick($that){
    var panelId = $that.parents(".topTemplate").attr("id");
    var $form=$(&#39;#&#39;+panelId+"form")
//    defaultPanel(panelId)
    var bookIndex=typeObj[panelId]++;
    console.log(panelId,bookIndex)
    var $template = $(&#39;#&#39;+panelId+&#39; #posTemplate&#39;),
      $clone =$template
        .clone()
        .removeClass(&#39;hide&#39;)
        .removeAttr(&#39;id&#39;)
        .attr(&#39;step&#39;,bookIndex)
        .insertBefore($template);
    // Update the name attributes
    $clone
      .find(&#39;[name="garageNo"]&#39;).attr({"step":bookIndex,"name":"garageNo"+bookIndex})
      .click(function(){
        clickBindGarageNo(panelId,bookIndex)
      }).end()
      .find(&#39;[name="posX"]&#39;).attr("step",bookIndex).end()
      .find(&#39;[name="posY"]&#39;).attr("step",bookIndex).end()
    // Add new fields
    // Note that we also pass the validator rules for new field as the third parameter
//    $(&#39;#defaultForm&#39;)
//    gFieldArr.push(panelId+&#39;[&#39; + bookIndex + &#39;].garageNo&#39;)
    $form
      .formValidation(&#39;addField&#39;, "garageNo"+bookIndex, formObj.sameAs(false))
      .formValidation(&#39;addField&#39;, &#39;posX&#39;, myPosXY)
      .formValidation(&#39;addField&#39;, &#39;posY&#39;, myPosXY)
  }
 function myFormValidation($form){
//    var $form=$("#"+$panelId+"form")
    $form
        .formValidation({
          framework: &#39;bootstrap&#39;,
          locale: &#39;zh_CN&#39;,
          message: &#39;值无效&#39;,
          icon: {
            valid: &#39;glyphicon glyphicon-ok&#39;,
            invalid: &#39;glyphicon glyphicon-remove&#39;,
            validating: &#39;glyphicon glyphicon-refresh&#39;
          },
          fields:
          {
            myimg:{
              validators: {
                notEmpty: {
                  message: &#39;请选择一个文件上传&#39;
                },
                file: {
                  extension: &#39;jpeg,jpg,png&#39;,
                  type: &#39;image/jpeg,image/png&#39;,
                  maxSize: 1*1024 * 1024,
                  message: &#39;该文件必须为jpeg,jpg,png格式和必须不超过1MB的大小&#39;
                }
              }
            }
          }
        })
        .on(&#39;click&#39;, &#39;.addButtonPos&#39;, function() {
          addButtonPosClick($(this))
        })
        //Remove button click handler
        .on(&#39;click&#39;, &#39;.removeButtonPos&#39;, function() {
          var $that   = $(this)
          var panelId = $that.parents(".topTemplate").attr("id");
//           defaultPanel(panelId)
          var $row = $(this).parents(&#39;.form-group&#39;),
              index = $row.attr(&#39;step&#39;);
//          var myname=&#39;[&#39; +index + &#39;]&#39;
          var bookIndex= typeObj[panelId]--;
//          $(&#39;#defaultForm&#39;)
          $form
                   .formValidation(&#39;removeField&#39;, $row.find(&#39;[name="garageNo&#39;+bookIndex+&#39;"]&#39;))
                   .formValidation(&#39;removeField&#39;, $row.find(&#39;[name="posX"]&#39;))
                   .formValidation(&#39;removeField&#39;, $row.find(&#39;[name="posY"]&#39;))
          // Remove element containing the fields
          $row.remove();
        })

내 프로젝트에 양식 제출이 여러 개 있지만 비즈니스가 유사하기 때문에 다음 기능을 사용합니다.

예: var form=(“#”+panelId+”form”) panelId를 사용하여 구별합니다. 여러 형태.

x와 y의 이름은 동일합니다. 하지만 주의하면 GarageNo의 이름이 다른 것을 알 수 있습니다. 🎜>왜? ​of GarageNo는 같은 형식일 수 없습니다. 예를 들어 귀하와 귀하의 동료는 모두 여성이거나 18세일 수 있습니다.

removeField 및 addField 키워드가 매우 잘 사용되었습니다. >
garageNo의 값은 동일할 수 없습니다. 아래를 참조하세요.

var differentValid= function(diffstr){
    var vv={
      validators: {
        different: {
          field: diffstr,
          message: &#39;不能有相同的停车库&#39;
        }
      }
    }
    return vv
  }

사용자가 GarageNo의 값을 입력한 후:

clickBindGarageNo(panelId,idx){
    $form.formValidation(&#39;addField&#39;, "garageNo"+idx, differentValid(diffArr.toString()))
      var fv =$form.data(&#39;formValidation&#39;);
      fv.validate();
}

이 diffArr.toString( )? 이것은 내가 통과한 GarageNo 이름의

문자열입니다. 예: 항목이 3개이고 idx=1이 1에 중점을 둡니다. 그런 다음 diffArr=["garageNo0","garageNo2",]

버그 참고: 너무 많은 입력을 사용하면 때때로 입력이 자동으로 확인되지 않는 경우가 있습니다. 예를 들어 날짜 플러그인을 사용할 때입니다. 날짜를 클릭하면 입력이 확인되지 않습니다. 이때 위 코드를 수동으로 확인해야 합니다. 그런 다음 전체 양식을 확인하려면

$form.formValidation(&#39;revalidateField&#39;, "field");
제출에 대한 세부 정보도 있습니다.

Bootstrap 양식 유효성 검사 formValidation의 자세한 예 제출 버튼을 설정하지 않은 경우 이 플러그인은 자동으로 제출합니다. 제출 서비스가 실패하면 자동으로 새로 고쳐지고 페이지가 404 페이지 또는 기타 오류 페이지가 됩니다. 🎜>하지만 가끔 새로 고치기를 원하지 않는 경우가 있습니다.

에 대한 튜토리얼이 많이 있습니다. 제출 버튼을 새로 고치지 않는 것에 대해 인터넷에서 확인하세요.

rree

[관련 권장 사항]

1.

Javascript 무료 동영상 튜토리얼

2. >Nodejs에서 흔히 사용되는 미들웨어 body-parser 상세 설명

3.

JavaScript 양식 검증 구현 코드_javascript 기술

한줄 모바일 화폐 형식 검증 구현을 위한 JS

5. Vue v-model 양식 제어 바인딩 예제 튜토리얼

위 내용은 Bootstrap 양식 유효성 검사 formValidation의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.