Вы можете иметь conditionSatisfied
испускать исходное значение вместо логического значения и затем объединять его с наблюдаемой, которая завершается на основе условия:
const source = nonCompletingStream();
const conditionSatisfied = source.pipe(
filter(val => meetsCriteriaToBeFinalValue(val)),
shareReplay(),
take(1)
);
const example = concat(
source.pipe(
takeUntil(conditionSatisfied)
),
conditionSatisfied
)
Здесь продемонстрировано https: // stackblitz. ком / редактировать / rxjs-qydhh3
Этот похож на него, соответствовал бы Вашему описанию:
Вот отрывок кода, скопированного с источника демонстрации:
// validate signup form on keyup and submit
$("#signupForm").validate({
rules: {
firstname: "required",
lastname: "required",
username: {
required: true,
minlength: 2
},
password: {
required: true,
minlength: 5
},
confirm_password: {
required: true,
minlength: 5,
equalTo: "#password"
},
email: {
required: true,
email: true
},
topic: {
required: "#newsletter:checked",
minlength: 2
},
agree: "required"
},
messages: {
firstname: "Please enter your firstname",
lastname: "Please enter your lastname",
username: {
required: "Please enter a username",
minlength: "Your username must consist of at least 2 characters"
},
password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long"
},
confirm_password: {
required: "Please provide a password",
minlength: "Your password must be at least 5 characters long",
equalTo: "Please enter the same password as above"
},
email: "Please enter a valid email address",
agree: "Please accept our policy"
}
});
Я имею, используют jQuery plugin:validation. это работает симпатичное с созданием элементов DOM на лету. Когда создание их на лету удостоверяется, что имя атрибутов и идентификатор включены. Я вполне уверен, плагин использует атрибут имени для нахождения их в HTML. Если имя отсутствует, они не могут быть найдены.
Также это могло бы быть другим хорошим инструментом проверки. http://www.livevalidation.com
В текущей соединительной линии jVal 0.1.4 это может обработать немного больше устойчивой функциональности проверки ошибок, чем предыдущие версии, разрешающие Вам возвращаемым строкам как сообщение об ошибке. Выберите текущий пересмотр 11 соединительных линий jVal 0.1.4 по http://jquery-jval.googlecode.com/svn/trunk/jVal.js
Вот пример поля пароля, которое проверит на:
Это отобразит пользовательское сообщение, если это приведет определенную проверку к сбою
<input id="web_pswd" type="password" size="20"
jVal="{valid:function (val) { if ( val.length < 8 ) return '8 or more characters required'; else if ( val.search(/[0-9]/) == -1 ) return '1 number or more required'; else if ( val.search(/[a-zA-Z]/) == -1 ) return '1 letter or more required'; else return ''; }, styleType:'pod'}"
Попробуйте следующее:
http://www.geektantra.com/2009/09/jquery-live-form-validation/
для меня лучше всего было бы http://livevalidation.com/ или от baseassistance http://bassistance.de/jquery-plugins/jquery-plugin-validation/
jVal и проверка живой формы могут быть в порядке, но я думаю, что весь смысл использования gjQuery в использовать чистый, беспрепятственный код, а они требуют так много беспорядка, что это не вариант для меня.
Я думаю, что проверка формы в реальном времени будет развиваться в будущем, действительно странно, что нужно вводить все регулярное выражение для проверки электронной почты в каждая форма ....