2017-01-26 2 views
0

Я пытаюсь проверить элемент управления SPPeoplePicker с помощью 1000hz bootstrap-validator, но он не работает. Может кто-нибудь помочь мне проверить его?Как проверять SPPeoplePicker с помощью bootstrap-validator

Вот мой код:

HTML

<div id="myPicker" class="form-group has-feedback"> 
     <div class="col-xs-4"> 
      <label for="peoplePickerDiv" class="control-label">Username</label> 
      <div class="input-group"> 
       <span class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span> 
       <div id="peoplePickerDiv"></div> 
      </div> 
      <span class="glyphicon form-control-feedback"></span> 
      <span class="help-block with-errors"></span> 
     </div> 
    </div> 

Машинопись:

$('#peoplePickerDiv_TopSpan_HiddenInput').attr('data-user', 'user'); 
$('#aspnetForm').validator({ 

     custom: { 

      user: function ($el) { 

       var peoplePickerElement: SPClientPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict['peoplePickerDiv_TopSpan']; 
       var user: ISPClientPeoplePickerEntity[] = peoplePickerElement.GetAllUserInfo(); 

       if (user[0].IsResolved == true) { 

        $('myPicker').attr('has-success'); 
        return "IT WORKS"; 

       } 
       else if (user[0].IsResolved == false) { 

        $('myPicker').attr('has-danger'); 
        return "Invalid User"; 
       } 
      } 
     } 
    }); 
}); 
+0

Не могли бы вы добавить сообщение об ошибке? –

+0

У меня нет ошибок. По крайней мере, в консоли нет ни одного. Сам контроль работает нормально. Проблема в том, что валидатор не работает, когда я выбираю пользователя. Вы знаете, что светится зеленым, если в контроле есть разрешенный пользователь и красный, если у пользователя нет или нет действительного. –

+0

lol Я только что увидел, что мне не хватает «#» в $ ('myPicker'). Я собираюсь проверить это сейчас и опубликует обновление. –

ответ

0

мне удалось achiev своей цели путем записи пользовательской функции для подтверждения ClientPicker. Вот код:

HTML:

<div id="myPicker" class="row has-feedback"> 
     <div class="col-xs-4"> 
      <label for="peoplePickerDiv" class="control-label">Username</label> 
      <div class="input-group"> 
       <span class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></span> 
       <div id="peoplePickerDiv"></div> 
      </div> 
      <span id="ppFeedIcon"class="glyphicon form-control-feedback"></span> 
      <span id="ppFeedMsg" class="help-block with-errors"></span> 
     </div> 
    </div> 

Машинопись:

var peoplePickerElement: SPClientPeoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict['peoplePickerDiv_TopSpan']; 

    $('#myPicker').bind('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified', function() { 

     if (peoplePickerElement.GetAllUserInfo().length == 0) { 
      $('#myPicker').removeClass('has-success').addClass('has-error'); 
      $('#ppFeedIcon').addClass("glyphicon-remove").removeClass("glyphicon-ok"); 
      $('#ppFeedMsg').html('Invalid user.'); 
     } 

     else if (peoplePickerElement.GetAllUserInfo().length > 0) { 
      $('#myPicker').addClass('has-success').removeClass('has-error'); 
      $('#ppFeedIcon').addClass("glyphicon-ok").removeClass("glyphicon-remove"); 
      $('#ppFeedMsg').html(""); 
     } 
    }); 
Смежные вопросы