এটি নির্ভর করে আপনি কোনও ইনট বা ভাসমান ক্ষেত্র চান কিনা তার উপর নির্ভর করে। এখানে দু'জনের দেখতে কেমন:
<input type="number" name="int-field" id="int-field" placeholder="positive int" min="1" step="1">
<input type="number" name="float-field" id="float-field" placeholder="positive float" min="0">
অন্তর্নিহিত ক্ষেত্রটির সাথে সঠিক বৈধতা যুক্ত রয়েছে, যেহেতু এটির মিনিট 1 is তবে ভাসমান ক্ষেত্র 0 টি গ্রহণ করে; এটি মোকাবেলা করতে, আপনি আরও একটি বাধা যাচাইকারী যুক্ত করতে পারেন :
function checkIsPositive(e) {
const value = parseFloat(e.target.value);
if (e.target.value === "" || value > 0) {
e.target.setCustomValidity("");
} else {
e.target.setCustomValidity("Please select a value that is greater than 0.");
}
}
document.getElementById("float-field").addEventListener("input", checkIsPositive, false);
জেএসফিডেল এখানে।
নোট করুন যে এই সমাধানগুলির কোনওটিই অবৈধ ইনপুট টাইপ করার চেষ্টা থেকে ব্যবহারকারীকে সম্পূর্ণরূপে বাধা দেয় না, তবে আপনি কল করতে পারেন checkValidityবাreportValidity ব্যবহারকারী বৈধ ইনপুটটি টাইপ করেছেন কিনা তা নির্ধারণ ।
অবশ্যই, আপনার এখনও সার্ভার-সাইড বৈধতা থাকা উচিত কারণ ব্যবহারকারী সর্বদা ক্লায়েন্ট-সাইডের বৈধতা উপেক্ষা করতে পারে।