কিছু সময় আগে আমার খুব অনুরূপ কিছু দরকার ছিল ... এবং আমি এটি পেয়েছি।
সুতরাং আমি এখানে যা রেখেছি তা হল আমি জাভাস্ক্রিপ্ট দ্বারা কোনও ফর্ম জমা দিতে সক্ষম হবার কৌশলগুলি কীভাবে কোনও বৈধতা ছাড়াই এবং বৈধতা কার্যকর করতে সক্ষম হয় যখন কেবলমাত্র ব্যবহারকারী একটি বোতাম চাপায় (সাধারণত একটি প্রেরণ বোতাম)।
উদাহরণস্বরূপ আমি দুটি ক্ষেত্র এবং একটি জমা বোতাম সহ একটি সর্বনিম্ন ফর্ম ব্যবহার করব।
যা চেয়েছিল তা মনে রাখবেন: জাভাস্ক্রিপ্ট থেকে এটি অবশ্যই কোনও চেকিং ছাড়াই জমা দিতে সক্ষম হবেন। তবে, ব্যবহারকারী যদি এই জাতীয় বোতাম টিপেন তবে বৈধতাটি অবশ্যই পাস করতে হবে এবং বৈধতাটি পাস করলেই ফর্মটি প্রেরণ করতে হবে।
সাধারণত সমস্ত কিছু এর কাছাকাছি কিছু থেকে শুরু হবে (আমি সমস্ত অতিরিক্ত জিনিস মুছে ফেললাম গুরুত্বপূর্ণ না):
<form method="post" id="theFormID" name="theFormID" action="">
<input type="text" id="Field1" name="Field1" />
<input type="text" id="Field2" name="Field2" />
<input type="submit" value="Send" onclick="JavaScript:return Validator();" />
</form>
ফর্ম ট্যাগের কীভাবে নেই তা দেখুন onsubmit="..."
(মনে রাখবেন এটি না রাখার শর্ত ছিল)।
সমস্যাটি হ'ল ফর্মটি সর্বদা জমা দেওয়া হয়, তা onclick
রিটার্নে আসুক true
বা না আসুক false
।
আমি যদি পরিবর্তিত type="submit"
হয় type="button"
, এটি কাজ করে বলে মনে হয় তবে তা হয় না। এটি কখনই ফর্মটি প্রেরণ করে না, তবে এটি সহজেই করা যায়।
সুতরাং অবশেষে আমি এটি ব্যবহার করেছি:
<form method="post" id="theFormID" name="theFormID" action="">
<input type="text" id="Field1" name="Field1" />
<input type="text" id="Field2" name="Field2" />
<input type="button" value="Send" onclick="JavaScript:return Validator();" />
</form>
এবং function Validator
যেখানে return True;
রয়েছে, আমি একটি জাভাস্ক্রিপ্ট জমা দেওয়ার বাক্যও যুক্ত করছি, এটির অনুরূপ কিছু:
function Validator(){
// ...bla bla bla... the checks
if( ){
document.getElementById('theFormID').submit();
return(true);
}else{
return(false);
}
}
এটি কেবল id=""
জাভাস্ক্রিপ্টের জন্য getElementById
thename=""
কেবলমাত্র পোস্টের ডেটাতে প্রদর্শিত হয়।
এইভাবে এটি আমার প্রয়োজন মতো কাজ করে।
আমি এটি কেবল এমন লোকদের জন্য রেখেছি onsubmit
যাদের ফর্মটিতে কোনও ফাংশনের প্রয়োজন নেই , তবে কোনও বোতাম ব্যবহারকারীর দ্বারা চাপলে কিছুটা বৈধতা তৈরি করে।
আমার কেন ফর্ম ট্যাগে অনসিমিটের প্রয়োজন নেই? সহজ, অন্যান্য জাভাস্ক্রিপ্ট অংশগুলিতে আমাকে একটি জমা দিতে হবে তবে আমি চাই না যে সেখানে কোনও বৈধতা থাকবে।
কারণ: যদি ব্যবহারকারী এমন হয় যা জমাটি সম্পাদন করে যা আমি চাই এবং যাচাইয়ের দরকার হয় তবে এটি জাভাস্ক্রিপ্টের মাঝে মাঝে আমার জমা দেওয়ার দরকার হয় যখন এই জাতীয় বৈধতা এড়াতে পারে।
এটি অদ্ভুত লাগতে পারে তবে উদাহরণস্বরূপ চিন্তা করার সময় নয়: লগইনে ... কিছু বিধিনিষেধ সহ ... যেমন পিএইচপি সেশন ব্যবহার করার অনুমতি না দেওয়া এবং কুকিজেরও অনুমতি নেই!
সুতরাং যে কোনও লিঙ্ককে অবশ্যই এই জাতীয় ফর্ম জমাতে রূপান্তর করতে হবে, তাই লগইন ডেটা হারাবে না। যখন কোনও লগইন এখনও করা হয়নি, এটি অবশ্যই কাজ করবে। সুতরাং লিঙ্কগুলিতে কোনও বৈধতা সম্পাদন করতে হবে না। তবে ব্যবহারকারী যদি ব্যবহারকারী, পাস এবং পাস উভয় ক্ষেত্রে প্রবেশ না করে থাকে তবে আমি ব্যবহারকারীর কাছে একটি বার্তা উপস্থাপন করতে চাই। সুতরাং কেউ যদি নিখোঁজ থাকে তবে অবশ্যই ফর্মটি পাঠানো হবে না! সমস্যা আছে।
সমস্যাটি দেখুন: একটি ক্ষেত্র খালি থাকলে ফর্মটি অবশ্যই প্রেরণ করা উচিত নয় যদি ব্যবহারকারী কোনও বোতাম টিপে থাকে, যদি এটি জাভাস্ক্রিপ্ট কোড হয় তবে অবশ্যই এটি প্রেরণে সক্ষম হবেন।
আমি যদি onsubmit
ফর্ম ট্যাগটিতে কাজটি করি তবে এটি আমার ব্যবহারকারী বা অন্য জাভাস্ক্রিপ্ট কিনা তা আমার জানতে হবে। যেহেতু কোনও প্যারামিটারগুলি পাস করা যায় না, এটি সরাসরি সম্ভব নয়, তাই কিছু লোক বৈধতা যুক্ত করতে হবে কিনা তা জানাতে একটি পরিবর্তনশীল যুক্ত করে। বৈধতা ফাংশনের প্রথম জিনিসটি হ'ল সেই পরিবর্তনশীল মান ইত্যাদি পরীক্ষা করা ... খুব জটিল এবং কোডটি আসলে কী চাইছিল তা বলে না।
সুতরাং সমাধানটি ফর্ম ট্যাগটিতে অনস্মিট না করা। ইনস্যাড বোতামে এটি যেখানে এটি সত্যই প্রয়োজন সেখানে রাখুন।
অন্য পক্ষের জন্য কেন অনসামিত কোডটি কেন ধারণামূলকভাবে আমি অনসামিতের বৈধতা চাই না। আমি সত্যিই বোতামের বৈধতা চাই।
কেবল কোডটি আরও স্পষ্ট নয়, এটি এটিই হওয়া উচিত। কেবল এটি মনে রাখবেন: - আমি জাভাস্ক্রিপ্টটি ফর্মটি যাচাই করতে চাই না (এটি সর্বদা সার্ভারের পাশে পিএইচপি দ্বারা করা উচিত) - আমি ব্যবহারকারীর কাছে একটি বার্তা বলতে চাই যে সমস্ত ক্ষেত্র খালি থাকতে হবে না, তার জন্য জাভাস্ক্রিপ্টের প্রয়োজন (ক্লায়েন্ট পার্শ্ব)
তাহলে কেন কিছু লোক (ভাবেন বা আমাকে বলুন) এটি অবশ্যই অনসুম্বিত বৈধতার উপর করা উচিত? না, ধারণাগতভাবে আমি ক্লায়েন্টের পক্ষ থেকে একটি অনসাম্বিত যাচাই করছি না। আমি একটি বোতাম টিপে কিছু করছি যা চাপতে হবে, তাই কেন এটি বাস্তবায়িত হতে দেওয়া হয় না?
ওয়েল যে কোড এবং শৈলী নিখুঁতভাবে কৌতুক করে। যে কোনও জাভাস্ক্রিপ্টে আমার সবেমাত্র ফর্মটি প্রেরণ করা দরকার:
document.getElementById('theFormID').action='./GoToThisPage.php'; // Where to go
document.getElementById('theFormID').submit(); // Send POST data and go there
এবং যখন আমার এটির প্রয়োজন হয় না তখন বৈধতা এড়িয়ে যায়। এটি কেবল ফর্মটি প্রেরণ করে এবং একটি ভিন্ন পৃষ্ঠা ইত্যাদি লোড করে
তবে ব্যবহারকারী যদি জমা বোতামটি ক্লিক করেন (ওরফে type="button"
না type="submit"
) ফর্মটি জমা দেওয়ার আগে বৈধতা দেওয়া হয় এবং বৈধ না হলে প্রেরণ করা হয় না।
আশা করি এটি অন্যকে দীর্ঘ এবং জটিল কোড চেষ্টা না করতে সহায়তা করে। onsubmit
প্রয়োজন না হলে কেবল ব্যবহার করবেন না, এবং ব্যবহার করুন onclick
। তবে কেবল পরিবর্তন type="submit"
করতে মনে রাখবেন type="button"
এবং দয়া submit()
করে জাভাস্ক্রিপ্ট দ্বারা করতে ভুলবেন না ।