নিম্নলিখিত সাধারণ পদে কার্যকর হতে পারে।
প্রথমত, এইচটিএমএল ফর্ম ক্ষেত্রগুলি পাঠ্যের মধ্যে সীমাবদ্ধ । এটি বিশেষত পাঠ্য বাক্সগুলিতে প্রযোজ্য, এমনকি মানটি একটি সংখ্যার মতো দেখাচ্ছে কিনা তা নিশ্চিত করার জন্য আপনি ব্যথা নিয়েছেন ।
দ্বিতীয়ত, জাভাস্ক্রিপ্ট আরও ভাল বা খারাপ হিসাবে +অপারেটরটিকে দুটি অর্থ দিয়ে ওভারলোড করেছে : এটি সংখ্যা যুক্ত করে, এবং এটি স্ট্রিংগুলি সংযুক্ত করে aten এটি সংক্ষিপ্তকরণের জন্য অগ্রাধিকার রয়েছে, সুতরাং এমনকি এর মতো একটি অভিব্যক্তিকেও 3+'4'কনক্যাটেনশন হিসাবে বিবেচনা করা হবে।
তৃতীয়ত, জাভাস্ক্রিপ্ট প্রকারভেদে প্রকার পরিবর্তন করতে চেষ্টা করবে যদি এটি পারে, এবং যদি এটির প্রয়োজন হয়। উদাহরণস্বরূপ '2'*'3'উভয় প্রকারের সংখ্যায় পরিবর্তন হবে, যেহেতু আপনি স্ট্রিংগুলি গুণ করতে পারবেন না। এর মধ্যে যদি কোনওটি বেমানান হয় তবে আপনি NaNএকটি নম্বর পাবেন না।
আপনার সমস্যা দেখা দেয় কারণ ফর্মটি থেকে আগত ডেটাগুলি একটি স্ট্রিং হিসাবে বিবেচিত হয় এবং +তাই সংযোজনের পরিবর্তে ইচ্ছামত সম্মিলিত হবে।
কোনও ফর্ম থেকে অনুমিত সংখ্যাসূচক তথ্য পড়ার সময়, আপনি একটি পূর্ণসংখ্যা বা দশমিক চান কিনা তার উপর নির্ভর করে আপনার সর্বদা এটির মাধ্যমে parseInt()বা এটির মাধ্যমে চাপ দেওয়া উচিত parseFloat()।
নোট করুন যে কোনওটিই কার্যকরীভাবে স্ট্রিংকে সংখ্যায় রূপান্তর করে না । পরিবর্তে, এটি স্ট্রিংটি বাম থেকে ডানে পার্স করবে যতক্ষণ না এটি একটি অবৈধ সংখ্যাসূচক চরিত্রটিতে বা শেষ দিকে আসে এবং যা গ্রহণ করা হয়েছে তা রূপান্তরিত করে। এর ব্যাপারেparseFloat , এর মধ্যে একটি দশমিক পয়েন্ট অন্তর্ভুক্ত থাকে তবে দুটি নয়।
বৈধ সংখ্যার পরে যে কোনও কিছুই কেবল উপেক্ষা করা হয়। তারা ব্যর্থ হয় যদি সংখ্যাটি হিসাবে স্ট্রিংটি শুরু না হয়। তাহলে আপনি পাবেন NaN।
ফর্মগুলি থেকে সংখ্যার জন্য একটি সাধারণ সাধারণ উদ্দেশ্য কৌশলটি হ'ল এইরকম:
var data=parseInt(form.elements['data'].value); // or parseFloat
আপনি যদি 0 টিতে একটি অবৈধ স্ট্রিং জড়ো করার জন্য প্রস্তুত থাকেন তবে আপনি এটি ব্যবহার করতে পারেন:
var data=parseInt(form.elements['data'].value) || 0;