簡體   English   中英

檢查至少 5 個輸入字段中的 2 個不為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM