[英]check atleast 2 of 5 input fields were not empty
如何檢查五個輸入字段中的兩個並獲取值? 我正在使用 jQuery,但我不確定這段代碼的正確定位是什么。 也許你們可以幫助我。
這是我的代碼:
$(document).ready(function() { $("#btnSubmit").on('click', function() { var val = $(".validate"); var res = ""; for (var i = 0; i < val.length; i++) { if (val[i].value) { if (i >= 2) { res = "Code Execution here"; } } } alert(res); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="validate" id="req1" name="req1"> <input type="text" class="validate" id="req2" name="req2"> <input type="text" class="validate" id="req3" name="req3"> <input type="text" class="validate" id="req4" name="req4"> <input type="text" class="validate" id="req5" name="req5"> <button type="button" class="btn" id="btnSubmit" name="submit">Submit</button>
我得到的結果是,如果執行達到上面的 2,它只會觸發res
變量。
我只想在輸入至少兩個字段時提交表單。
謝謝!
更改邏輯以計算在 for 循環中具有值的字段數,而不是基數計數更改警報消息
$(document).ready(function() { $("#btnSubmit").on('click', function() { var val = $(".validate"); var res = ""; let count=0; for (var i = 0; i < val.length; i++) { if (val[i].value) { count++; } } if (count >= 2) { res = "Code Execution here"; } alert(res); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="validate" id="req1" name="req1"> <input type="text" class="validate" id="req2" name="req2"> <input type="text" class="validate" id="req3" name="req3"> <input type="text" class="validate" id="req4" name="req4"> <input type="text" class="validate" id="req5" name="req5"> <button type="button" class="btn" id="btnSubmit" name="submit">Submit</button>
您正在檢查前兩個以外的任何值是否有價值
實施支票的正確方法是:
$(document).ready(function(){ $("#btnSubmit").on('click', function(){ var val = $(".validate"); var res = ""; var reqCount=0 for(var i = 0; i < val.length; i++){ if(val[i].value){ reqCount++; } if(reqCount >= 2){ res = "Code Execution here"; } } alert(res); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="validate" id="req1" name="req1"> <input type="text" class="validate" id="req2" name="req2"> <input type="text" class="validate" id="req3" name="req3"> <input type="text" class="validate" id="req4" name="req4"> <input type="text" class="validate" id="req5" name="req5"> <button type="button" class="btn" id="btnSubmit" name="submit">Submit</button>
我不知道為什么在這個問題上有一個 C# 標簽,如果你想在服務器端這樣做,那將是一個完全不同的問題
如果您只想確保在用戶提交表單之前至少填寫了 2 個字段,您可以執行以下操作:
function isEmpty(validateElem) {
return (validateElem === "" || typeof validateElem === 'undefined') ? true : false;
}
$(function(){
var InputValidateCount = 0;
$('form').submit(function(){
$('input').each(function(e , i){
if(!isEmpty($(this).val())) {
InputValidateCount++;
}
});
if(InputValidateCount < 2) {
return false; // Stop from from submitting;
}
});
});
您應該在提交之前計算已驗證的字段。
如果這回答了你,請點贊。 :P
$(document).ready(function() { $("#btnSubmit").on('click', function() { var val = $(".validate"); var minimumNonEmptyFields = 2; var validatedNonEmptyFieldsCount = 0; for (var i = 0; i < val.length; i++) { if (val[i].value) { validatedNonEmptyFieldsCount++; } } if(validatedNonEmptyFieldsCount >= minimumNonEmptyFields) { alert( validatedNonEmptyFieldsCount + " fields are non-empty"); } else { alert("Please fill " + (minimumNonEmptyFields - validatedNonEmptyFieldsCount) + " more fields"); } }); });
<!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <title> Validate any 2 input </title> </head> <body> <input type="text" class="validate" id="req1" name="req1"> <input type="text" class="validate" id="req2" name="req2"> <input type="text" class="validate" id="req3" name="req3"> <input type="text" class="validate" id="req4" name="req4"> <input type="text" class="validate" id="req5" name="req5"> <input type="text" class="validate" id="req6" name="req6"> <button type="button" class="btn" id="btnSubmit" name="submit">Submit</button> <script></script> </body> </html>
如果至少兩個輸入不為空,則返回 true 否則返回 false 。
如果 return 為真,則提交表單,否則不會。
$(document).ready(function() { $("#btnSubmit").on('click', function() { var val = $(".validate"); var res = ""; for (var i = 0; i < val.length; i++) { if (val[i].value) { if (i >= 2) { res = "Code Execution here"; console.log("success"); return true; } } } console.log("fail"); return false; }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="validate" id="req1" name="req1"> <input type="text" class="validate" id="req2" name="req2"> <input type="text" class="validate" id="req3" name="req3"> <input type="text" class="validate" id="req4" name="req4"> <input type="text" class="validate" id="req5" name="req5"> <button type="button" class="btn" id="btnSubmit" name="submit">Submit</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.