মুদ্রার জন্য, আমি পরামর্শ দেব:
<div><label>Amount $
<input type="number" placeholder="0.00" required name="price" min="0" value="0" step="0.01" title="Currency" pattern="^\d+(?:\.\d{1,2})?$" onblur="
this.parentNode.parentNode.style.backgroundColor=/^\d+(?:\.\d{1,2})?$/.test(this.value)?'inherit':'red'
"></label></div>
Http://jsfiddle.net/vx3axsk5/1/ দেখুন
HTML5 বৈশিষ্ট্যগুলি "পদক্ষেপ", "মিনিট" এবং "প্যাটার্ন" বৈধ হয়ে যাবে যখন ফর্মটি জমা দেওয়া হবে, অন্বলুর নয়। আপনার step
যদি দরকার হয় তবে আপনার প্রয়োজন নেই এবং আপনার কাছে pattern
একটি pattern
থাকলে আপনার দরকার নেই step
। সুতরাং আপনি step="any"
আমার কোডটি দিয়ে ফিরে যেতে পারেন যেহেতু প্যাটার্নটি এটি যাইহোক বৈধ করে দেবে।
আপনি যদি অন্বলুরকে বৈধতা দিতে চান তবে আমি বিশ্বাস করি যে ব্যবহারকারীকে একটি ভিজ্যুয়াল কিউ দেওয়া ব্যাকগ্রাউন্ড লাল রঙ করার মতো সহায়ক। যদি ব্যবহারকারীর ব্রাউজারকে সমর্থন করে না type="number"
এটি ফলব্যাক হবে type="text"
। যদি ব্যবহারকারীর ব্রাউজারটি এইচটিএমএল 5 প্যাটার্নের বৈধতা সমর্থন করে না, তবে আমার জাভাস্ক্রিপ্ট স্নিপেট ফর্মটি জমা দেওয়া থেকে বিরত রাখে না, তবে এটি একটি ভিজ্যুয়াল ইঙ্গিত দেয়। সুতরাং, দুর্বল এইচটিএমএল সমর্থনযুক্ত লোক এবং জাভাস্ক্রিপ্ট অক্ষম করে বা এইচটিটিপি অনুরোধগুলি জাল করে ডেটাবেস হ্যাক করার চেষ্টা করছে এমন লোকদের জন্য আপনাকে আবারও সার্ভারে বৈধতা দেওয়ার প্রয়োজন। সম্মুখ-প্রান্তে বৈধতা সহ পয়েন্টটি আরও ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য। সুতরাং যতক্ষণ না আপনার বেশিরভাগ ব্যবহারকারীর একটি ভাল অভিজ্ঞতা রয়েছে, কোডটি এখনও কাজ করবে এবং আপনি ব্যাক-এন্ডে যাচাই করতে পারবেন তবে এইচটিএমএল 5 বৈশিষ্ট্যগুলির উপর নির্ভর করা ঠিক আছে।