যতক্ষণ আপনার নির্বাচক প্রকৃতপক্ষে কাজ করছেন ততক্ষণ আমি আপনার কোডের সাথে কোনও ভুল দেখছি না যা অ্যারের দৈর্ঘ্য পরীক্ষা করে। আপনার যা ইচ্ছা তা করা উচিত। আপনার কোডটি আরও সহজ এবং আরও পঠনযোগ্য করার জন্য পরিষ্কার করার অনেক উপায় রয়েছে। আমি কী পরিষ্কার করেছিলাম সে সম্পর্কে নোট সহ একটি ক্লিন আপ সংস্করণ এখানে।
var album_text = [];
$("input[name='album_text[]']").each(function() {
var value = $(this).val();
if (value) {
album_text.push(value);
}
});
if (album_text.length === 0) {
$('#error_message').html("Error");
}
else {
//send data
}
আপনি কী করছেন এবং আমি কী পরিবর্তন করেছি সে সম্পর্কে কিছু নোট।
$(this)সর্বদা একটি বৈধ jQuery অবজেক্ট তাই কখনও চেক করার কোনও কারণ নেই if ($(this))। এটির অভ্যন্তরে কোনও ডিওএম অবজেক্ট নাও থাকতে পারে $(this).lengthতবে আপনার প্রয়োজনের সাথে এটি পরীক্ষা করতে পারেন তবে এটি এখানে প্রয়োজনীয় নয় কারণ .each()লুপের $(this)ভিতরে কোনও আইটেম না থাকলে লুপটি চলত না কারণ .each()সর্বদা কিছু হবে।
- এটি একই ফাংশনে একাধিকবার $ (এটি) ব্যবহারে অক্ষম। এটি একবার স্থানীয় ভেরিয়েবলে পাওয়ার জন্য আরও ভাল এবং সেই স্থানীয় ভেরিয়েবল থেকে এটি ব্যবহার করুন।
- এটা দিয়ে অ্যারে আরম্ভ করতে সুপারিশ করা হচ্ছে
[]বদলে new Array()।
if (value)যখন মান একটি স্ট্রিং থেকে হবে উভয় রক্ষা হবে বলে আশা করা হয় value == null, value == undefinedএবং value == ""তাই আপনাকে যা করতে হবে না if (value && (value != ""))। আপনি কেবল পারেন: if (value)তিনটি খালি শর্তের জন্য পরীক্ষা করতে।
if (album_text.length === 0) অ্যারেটি বৈধ, আরম্ভিকৃত অ্যারে (যা এটি এখানে রয়েছে) যতক্ষণ না খালি তা আপনাকে বলবে।
আপনি এই নির্বাচকটির সাথে কী করার চেষ্টা করছেন $("input[name='album_text[]']")?