對不起,我是一個初學者 *** 我有6個學校兒童的ID,教師將把這個ID或不重要的,但他必須把1個最小的......或者當他把更多的一個必須是不同的。
我使用Parsley.js在這里驗證我的測驗。jsfiddle
我試著檢查6個以上的輸入是否彼此不同,因為如果輸入是相同的,在類似的欄位上會出現一個資訊。 這就是我所做的
<form action="" id="homeeform" method="POST" style="width: 100%;" novalidate="novalidate">
< input type="text" class="datac selector" data-parsley-date=" name="m1" id="m1" />
< input type="text" class="datac selector" data-parsley-date=" name="m2" id="m2" />
< input type="text" class="datac selector" data-parsley-date=" name="m3" id="m3" />
< input type="text" class="datac selector" data-parsley-date="" name="m4" id="m4" />
< input type="text" class="datac selector" data-parsley-date=" name="m5" id="m5" />
< input type="text" class="datac selector" data-parsley-date=" name="m6" id="m6" />
< button id="submit" type="submit" > 結賬</按鈕>
</form>
<script type="text/javascript">
window.ParsleyValidator.
.addValidator(
'date',
function(value, requirements) {
$(this)。 attr('value', $(this).val()。
var values = [] 。
$('.selector').each(function(){
if ($(this).val() !=''){
if(!values.includes(this.value)){
values.push(this.value)
return true;
$(this).css("border-color", "") 。
}else{
values.push(this.value)
$(this).css("border-color", "red") 。
return false。
}
}
});
},
34
)
.addMessage('en', 'date', "輸入有效日期") 。
</script>
有沒有辦法,我可以用Parsley驗證器來處理JavaScript?
uj5u.com熱心網友回復:
基于這里的細節,https://parsleyjs.org/doc/index.html#custom下面的例子應該是有用的。
。span class="hljs-selector-class">.selector {
display: block;
}
<script src="https://cdnjs. cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>/span>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.9.2/parsley. js" integrity="sha512- Fq/wHuMI7AraoOK juE5oYILKvSPe6GC5ZWZnvpOO/ZPdtyA29n a5kVLP4XaLyDy9D1IBPYzdFycO33Ijd0Pg=="/span> crossorigin="anonymous" referrerpolicy="no-referrer"> </script>>
< form id="homeeform" action=" method="post">
<p>輸入日期</p>
<div data-parsley-check-empty="1">/span>
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m1" id="m1" />
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m2" id="m2" />
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m3" id="m3" />
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m4" id="m4" />
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m5" id="m5" />
< input type="text" class="datac selector" data-parsley-unique-date="" data-parsley-group="block-1" name="m6" id="m6" />
</div>
<button id="submit" type="submit"> Check Out</button>。
</form>/span>
<script>
window.Parsley.addValidator(
'uniqueDate', {
validateString: function(value) {
var count = 0;
$(".selector").each(function(i, el) {
if (value ==$(el).val()) {
count ;
}
});
return (count <= 1) 。
},
messages: {
en: '所有日期必須是唯一的。
}
}
);
window.Parsley.addValidator(
'checkEmtpy', {
messages: {
en: '你必須至少填寫其中的一個日期!'。
},
requirementType: 'integer'。
validate: function(_value, requirement, instance) {
console.log("Group Validation") 。
for (var i = 1; i <= requirement; i ) {
if (instance.parent.isValid({
group: 'block-' i,
force: true。
})) {
return true; //一節被填充,這個檢查有效。
}
}
return false; //沒有填寫任何部分,本次驗證失敗 }
}
});
var formInstance = $("#homeform"/span>).parsley({
inputs。Parsley.options.inputs ',[data-parsley-check-empty]')
})
.on('form:submit',function() {
console.log("提交事件")。
return false; //Don't submit form for this demo。
});
</script>/span>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
首先,你的語法是不正確的。.addValidator()似乎需要一個對應于資料屬性的字串和一個定義細節的物件。
你說你希望每個欄位都有一個唯一的值。當驗證器檢查每個欄位時,應該只有一個或更少的值。我們假設失敗并開始計數。然后我們遍歷每個欄位,將我們的value與每個欄位的值進行比較,如果它們匹配,則增加計數。我們知道它必須至少與其中一個匹配,即我們正在驗證的那個。如果count小于或等于1,我們可以回傳一個有效的回應。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/319922.html
標籤:
