javascript - form - knockout js thousand separator



Проверка нокаута-как показать одно сообщение об ошибке (1)

На самом деле, я проверяю свою модель представления на отправку для проверки, как описано здесь на SO .

В моей форме есть действие «Сохранить прогресс» в дополнение к действию «Отправить». Он подчиняется серверу примерно таким же образом, но имеет меньше требуемых полей.

Я хотел бы сохранить четыре абсолютно обязательных поля, где они в настоящее время находятся в модели просмотра ... т. Е. Держать их в большей группе проверки для представления.

Есть ли способ в проверке нокаута просто показать конкретные сообщения так же, как showAllMessages() для полной группы проверки? Я просмотрел источник, но не смог найти ничего подобного showMessage() прикрепленного к одной ошибке.

Или есть способ выбрать поля из моей модели просмотра и поместить их в свою собственную группу проверки (но сохранить их также в более крупной группе)?

Итак, в качестве примера:

var ViewModel = ko.validatedObservable({
  requiredForSave1:  ko.observable().extend({ required: true }),
  requiredForSave2:  ko.observable().extend({ required: true }),
  requiredForSubmit: ko.observable().extend({ required: true })
  // ... and many more.
});

$('#sumbit').on('click', function(){

  //check the entire validation group
  if ( ViewModel.errors().length === 0 ){
    doSubmit();
  }
  else{
    ViewModel.errors.showAllMessages();
  }
});

$('#save').on('click', function(){

  //check only part of the validation group
  if ( ViewModel.requiredForSave1.isValid() &&
       ViewModel.requiredForSave2.isValid() ){

    doSubmit();
  }
  else{
     //show only one or two specific validation messages.
     //???
  }

});

Есть ли способ заполнить этот последний блок, или я должен придерживаться другого подхода к этому?

благодаря

https://ffff65535.com


Или есть способ выбрать поля из моей модели просмотра и поместить их в свою собственную группу проверки (но сохранить их также в более крупной группе)?

Да, вы можете определить столько групп, сколько хотите; и наблюдаемые могут быть в нескольких группах проверки.

Так, например, предположим, что ваша группа проверки всех ошибок в вашей модели просмотра выглядит следующим образом:

ViewModel.errors = ko.validation.group(ViewModel);

Вы также можете добавить отдельные группы:

ViewModel.saveErrors = ko.validation.group([ViewModel.requiredForSave1, ViewModel.requiredForSave2]);

Кроме того, вызывая showAllMessages в группе проверки, вы показываете только сообщения для наблюдаемых в этой группе. ViewModel.saveErrors.showAllMessages() будет показывать только сообщения проверки для requiredForSave1 и requiredForSave2

надеюсь, это поможет





knockout-validation