3

그래서 온라인 솔루션의 몇 가지를 확인하려고 사용하지만 사용 및 bootstrapvalidator를 사용하여 필드 유효성 검사를 비활성화에 대한 내 문제를 해결하는 솔루션을 찾을 수 없습니다.사용 및 사용 안 함 필드 검증 bootstrapValidator

내가 (누군가가 음수를 입력 할 때 오류를 제공하기 위해 (예를 들어, -4, -100, -545 등)되어 필드 및 숫자가 아닌 임의의 번호를 가지고 예를 들어 4.4.4, 4.r, 4t 등). 하지만 나는 -999에 사용자가 입력 할 때 오류를주지 않는 조건을 넣고 싶습니다. 사용자가 부정적인와 귀족-, 수치 아닌 다른 번호를 입력 할 때

코드는 잘 작동한다. 그리고 사용자가 음수 또는 숫자가 아닌 숫자를 입력하면 오류가 표시됩니다. 사용자가 -999를 입력하면 true를 검증하고 (오류를 표시하지 않음), 음수 및 숫자가 아닌 숫자와 같은 다른 숫자로 사용자 번호 (-999)를 변경하면 필드 확인이 작동을 멈 춥니 다. 보여줄 예정 이었지만 오류 표시).

그래서 어떻게 bootstrapValidator를 사용하여 내 문제를 해결하기 위해 사용 및 사용 안 함 필드 유효성 검사 또는 현장 검증에 조건을 설정 할 수 있습니다 .. ???

너희들은 이미 이러한 문제를 건너 한 희망 나는 당신이 날 퍼즐을 해결하는 데 도움 수 있기를 바랍니다.

당신은 여기를 시도 할 수 있습니다 : https://jsfiddle.net/os3b0dqx/를이 같은

내 template.html 보이는 작동 방식을 볼 수 :

<form class="well form-horizontal" action=" " method="post" id="myform"> 
    <div class="form-group"> 
     <label class="col-xs-3 control-label">Length</label> 
     <div class="col-xs-5"> 
      <input type="text" class="form-control" id="length" name="length" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-xs-5 col-xs-offset-1"> 
      <button type="submit" class="btn btn-default">Submit</button> 
     </div> 
    </div> 
</form> 
<script> 
    $(document).ready(function() { 
     $('#myform').bootstrapValidator({ 
      feedbackIcons: { 
       validating: 'glyphicon glyphicon-refresh' 
      }, 
      fields: { 
       length: { 
        validators: { 
         greaterThan: { 
          value: 0, 
          message: 'The value must be greater than or equal to zero' 
         }, 
         numeric: { 
          message: 'The value is not a number', 
          thousandsSeparator: '', 
          decimalSeparator: '.' 
         }, 
         notEmpty: { 
          message: 'Please fill the length' 
         } 
        } 
       }, 
      } 
     }).on('click keyup input change', '[name="length"]', function() { 
      if ($(this).val() == -999) { 
       $('#myform').bootstrapValidator('enableFieldValidators', 'length', false); 
      } else { 
       $('#myform').bootstrapValidator('validateField', 'length'); 
       //$('#myform').bootstrapValidator('enableFieldValidators','length',true); 
       // both "validateField" and "enableFieldValidators" doesn't work for me.. 
      } 
     }); 
    }); 

답변

0

하는 이벤트 리스너를 제거 할 수있는 정규 표현식으로 첫 번째 두 가지 규칙을 대체 단지 양수하여 특정 값 :

$('#myform').bootstrapValidator({ 
    fields: { 
    length: { 
     validators: { 
     regexp: { 
      regexp: '^[+]?[0-9]+([.,][0-9]+){0,1}$|^-999$', 
      message: 'The value must be a number greater than or equal to zero' 
     }, 
     notEmpty: { 
      message: 'Please fill the length' 
     } 
     } 
    }, 
    } 
});