ক্লিকযোগ্য লেবেল সহ একটি চেকবক্স কীভাবে তৈরি করবেন?


1020

ক্লিকযোগ্য এমন লেবেল সহ আমি কীভাবে এইচটিএমএল চেকবক্স তৈরি করতে পারি (এর অর্থ লেবেলে ক্লিক করা চেকবক্সটি চালু / বন্ধ করে দেয়)?


উত্তর:


1914

পদ্ধতি 1: লেবেল ট্যাগ মোড়ানো

একটি labelট্যাগের মধ্যে চেকবক্সটি মোড়ানো :

<label><input type="checkbox" name="checkbox" value="value">Text</label>

পদ্ধতি 2: forঅ্যাট্রিবিউটটি ব্যবহার করুন

forবৈশিষ্ট্যটি ব্যবহার করুন (চেকবাক্সের সাথে মেলে id):

<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id">Text</label>

দ্রষ্টব্য : আইডি অবশ্যই পৃষ্ঠায় অনন্য হতে হবে!

ব্যাখ্যা

যেহেতু অন্যান্য উত্তরগুলিতে এটি উল্লেখ করা হয়নি, একটি লেবেল 1 টি পর্যন্ত ইনপুট অন্তর্ভুক্ত করতে পারে এবং forবৈশিষ্ট্যটি বাদ দিতে পারে এবং ধরে নেওয়া হবে এটি এটির মধ্যে ইনপুটটির জন্য।

W3.org থেকে অংশ (আমার জোর দিয়ে):

[বৈশিষ্ট্যের জন্য] স্পষ্টভাবে অন্য নিয়ন্ত্রণের সাথে সংজ্ঞায়িত লেবেলটিকে সংযুক্ত করে। উপস্থিত থাকাকালীন, এই অ্যাট্রিবিউটের মান একই ডকুমেন্টের কিছু অন্য নিয়ন্ত্রণের আইডি বৈশিষ্ট্যের মান হিসাবে সমান হওয়া উচিত। অনুপস্থিত থাকলে, সংজ্ঞায়িত করা লেবেলটি উপাদানটির সামগ্রীর সাথে সম্পর্কিত।

স্পষ্টভাবে অন্য নিয়ন্ত্রণের সাথে একটি লেবেল সংযুক্ত করতে, নিয়ন্ত্রণ উপাদানটি অবশ্যই LABEL উপাদানটির সামগ্রীর মধ্যে থাকা উচিত । এই ক্ষেত্রে, LABEL কেবলমাত্র একটি নিয়ন্ত্রণ উপাদান থাকতে পারে । লেবেল নিজেই সম্পর্কিত নিয়ন্ত্রণের আগে বা পরে অবস্থান করতে পারে।

এই পদ্ধতিটি ব্যবহারের কিছু সুবিধা রয়েছে for:

  • idপ্রতিটি চেকবক্সে একটি দুর্দান্ত বরাদ্দ দেওয়ার দরকার নেই (দুর্দান্ত!)

  • এর মধ্যে অতিরিক্ত গুণাবলী ব্যবহার করার দরকার নেই <label>

  • ইনপুটটির ক্লিকযোগ্য এলাকা হ'ল লেবেলের ক্লিকযোগ্য ক্ষেত্রও, সুতরাং ক্লিক করার জন্য দুটি পৃথক জায়গা নেই যা চেকবক্সটি নিয়ন্ত্রণ করতে পারে - কেবলমাত্র একটিই, যত তাড়াতাড়ি <input>লেবেল এবং প্রকৃত লেবেল পাঠ্য আলাদা নয়, এবং আপনি কী ধরণের সিএসএসের বিষয়টি বিবেচনা করুন না matter এটি প্রয়োগ করুন

কিছু সিএসএস সহ ডেমো:

label {
 border:1px solid #ccc;
 padding:10px;
 margin:0 0 10px;
 display:block; 
}

label:hover {
 background:#eee;
 cursor:pointer;
}
<label><input type="checkbox" />Option 1</label>
<label><input type="checkbox" />Option 2</label>
<label><input type="checkbox" />Option 3</label>


14
এটি পছন্দ, কিন্তু আবার সম্পাদনা করুন। এটি কেবলমাত্র চেকবাক্সগুলির জন্যই ভাল। আসুন আসুন লোকেরা তাদের অন্যান্য ইনপুটগুলি লেবেলগুলিতে জড়ানোর জন্য উত্সাহিত করবেন না, কারণ এটি গ্রিড সিস্টেমটি ভেঙে দেয় এবং মোবাইলের প্রতিক্রিয়াশীলতা আসতে আরও কঠিন হতে পারে
ম্যাক্স

1
কেউ যদি জন জনকে ছেড়ে দেওয়া মন্তব্যটি ব্যাখ্যা করতে পারেন তবে দয়া করে করুন, কারণ এটি আমার কাছে মোটেই অর্থবোধ করে না।
ওয়েসলি মার্চ

16
@ জন যা বিশেষত বুটস্ট্র্যাপের জন্য একটি মার্কআপ গাইড। আপনি যদি কোনও ফ্রেমওয়ার্ক ব্যবহার না করে থাকেন বা অন্য কোনওটি ব্যবহার করছেন তবে এটি পুরোপুরি ঠিক আছে। জবাবের জন্য ধন্যবাদ.
ওয়েসলি মার্চ

3
@John। আপনি যে পৃষ্ঠায় লিঙ্ক করেছেন, বুটস্ট্র্যাপের উদাহরণগুলিতে লেবেলযুক্ত সমস্ত মোড়ানো চেকবক্স, আমি কোনও সতর্কতা দেখতে পাচ্ছি না, সম্ভবত আপনি এটি সর্বশেষতম বুটস্ট্র্যাপের সাথে প্রাসঙ্গিক।
ব্যবহারকারী 2144406

2
যেমনটি আমি আজ শিখেছি, পদ্ধতি 1 এবং 2 পদ্ধতি মিশ্রন করবেন না আপনি যদি কোনও লেবেলে চেকবক্সটি মুড়ে রাখেন এবং এর জন্য অন্তর্ভুক্ত করেন তবে লেবেলে ক্লিক করলে চেকবক্সটি ট্রিগার হবে না।
বিবিলেট

50

লেবেলটি ইনপুটটির সাথে জড়িত তা নিশ্চিত করুন।

<fieldset>
  <legend>What metasyntactic variables do you like?</legend>

  <input type="checkbox" name="foo" value="bar" id="foo_bar">
  <label for="foo_bar">Bar</label>

  <input type="checkbox" name="foo" value="baz" id="foo_baz">
  <label for="foo_baz">Baz</label>
</fieldset>

1
আপনি দুটি চেকবক্সকে একই নাম এবং বিভিন্ন মান দিয়েছিলেন তা শুনে আমি বিভ্রান্ত। এটা কি উদ্দেশ্য?
LarsH

2
@ লার্শ - হ্যাঁ, আপনি এভাবে চেকবক্স গ্রুপ তৈরি করেন।
কুইন্টিন

ধন্যবাদ। আমি w3.org/wiki/HTML/Elements/input/checkboxদেখছিলাম এবং এটি সে ক্ষেত্রে সহায়ক ছিল না।
LarsH

2
পিএইচপি সহ, যেগুলি _P _POST ['foo'] বানাতে পারে তা কি সর্বদা দুটি মানগুলির মধ্যে একটিতে একবারে সর্বাধিক থাকে? এমনকি যদি উভয়ই চেক করে। একটি চেকবক্স গ্রুপ কি?
jeromej

2
@JeromeJ: পিএইচপি এটি সঠিকভাবে পরিচালনা করার জন্য, আপনি নাম, যেমন বর্গাকার বন্ধনী যোগ আছে: <input type="checkbox" name="foo[]" value="bar" ...>। এটি আপনাকে একটি অ্যারে দেবে যাতে সমস্ত পরীক্ষিত বাক্সের মান রয়েছে (যেটিতে এই নাম রয়েছে)। উদাহরণস্বরূপ $_POST['foo'][0]হতে পারে barএবং $_POST['foo'][1]হতে পারে baz(যদি উভয়ই চেক করা থাকে)।
লেভাইট

11

আপনার সমস্ত চেকবক্সের মান বৈশিষ্ট্যগুলি (যথাক্রমে) থেকে আপনার লেবেল বাছাই এবং প্রদর্শন করতে আপনি সিএসএস সিউডো উপাদানগুলি ব্যবহার করতে পারেন।
সম্পাদনা করুন: এটি কেবল ওয়েবকিট এবং ব্লিঙ্ক ভিত্তিক ব্রাউজারগুলি (ক্রোম (আইওএম), সাফারি, অপেরা ....) এবং এভাবে বেশিরভাগ মোবাইল ব্রাউজারগুলির সাথে কাজ করবে। কোন ফায়ারফক্স বা IE সমর্থন এখানে।
এটি কেবল তখনই কার্যকর হতে পারে যখন আপনার অ্যাপ্লিকেশনগুলিতে ওয়েবকিট / ঝলক এম্বেড করে।

<input type="checkbox" value="My checkbox label value" />
<style>
[type=checkbox]:after {
    content: attr(value);
    margin: -3px 15px;
    vertical-align: top;
    white-space:nowrap;
    display: inline-block;
}
</style>

সমস্ত সিউডো উপাদান লেবেল ক্লিকযোগ্য হবে।

ডেমো: http://codepen.io/mrmoje/pen/oteLl , + এর সংক্ষিপ্তসার


সত্য। গেকো এবং ত্রিশূল এবং জেকো এটি পছন্দ করে বলে মনে হয় না। এটি কেবল ওয়েবকিট এবং ব্লিঙ্কের সাথে কাজ করবে। আমি উত্তরটি আপডেট করব
mrmoje

3
Downvoted। এটি সম্ভব হওয়ার পরেও এটি একটি খারাপ উপায় - অনেকগুলি ব্রাউজারে কাজ করে না, অ্যাক্সেসযোগ্যতার পক্ষে ভাল নয়।
জেমস বিলিংহাম

সামঞ্জস্যতা একদিকে ফেলে, এই সমাধানটি শীর্ষ উত্তরের মতো শব্দার্থক নয়, কারণ <label> এবং <ইনপুট>
ডেডবয়

"এটি ওয়েবকিট / ব্লিঙ্কে কাজ করে" বাগ ( স্ট্যাকওভারফ্লো / প্রশ্ন / 2587669/… ) ব্যবহার করে বাগের মতো গন্ধ পাচ্ছে তাই এটি যে কোনও সময় কাজ বন্ধ করতে পারে।
জেনোস


3
<label for="myInputID">myLabel</label><input type="checkbox" id="myInputID" name="myInputID />

1
যেহেতু এটি কিছু পাঠকের কাছে বিভ্রান্তিকর হতে পারে, সুতরাং আপনার এই nameগুণাবলীর মানটি বৈশিষ্ট্যের উপস্থিতি forএবং idগুণাবলীর উপস্থিতির চেয়ে আলাদা কিছুতে পরিবর্তন করা উচিত , যেহেতু এই দুটি সম্পর্কযুক্ত, যদিও nameএটি অন্তর্ভুক্ত নয় (যদিও আমি বিশ্বাস করি তবে এটি অন্তর্ভুক্ত করা অবশ্যই বাধ্যতামূলক) ।
ডিজনেয়েট

3

এটি খুব কার্যকর:

<form>
    <label for="male"><input type="checkbox" name="male" id="male" />Male</label><br />
    <label for="female"><input type="checkbox" name="female" id="female" />Female</label>
</form>

আপনি ট্যাগটিতে কেবলমাত্র একটি ইনপুট উপাদান রয়েছে তাই আপনি আপনার উদাহরণে গুণাবলী forএবং idবৈশিষ্ট্যগুলি বাদ দিতে labelপারেন।
ডিজনেয়েট



0

চেকবক্সের সাথে এটি যুক্ত করতে labelউপাদান এবং forবৈশিষ্ট্যটি ব্যবহার করুন:

<label for="myCheckbox">Some checkbox</label> <input type="checkbox" id="myCheckbox" />



-7

এটা ব্যবহার কর

<input type="checkbox" name="checkbox" id="checkbox_id" value="value">
<label for="checkbox_id" id="checkbox_lbl">Text</label>


$("#checkbox_lbl").click(function(){ 
    if($("#checkbox_id").is(':checked'))
        $("#checkbox_id").removAttr('checked');
    else
       $("#checkbox_id").attr('checked');
    });
});

9
এটি করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করার প্রয়োজন নেই। এটি এইচটিএমএলে নির্মিত।
লাসে বাঙ্ক

4
@ ল্যাসব্যাঙ্ক, যদি এটি কেবল জাভাস্ক্রিপ্ট হত তবে এটি কাজ করার জন্য পুরো jQuery লাইব্রেরি প্রয়োজন। দেখা যাক যে কেউ কৌনিক 2 সমাধান নিয়ে আসতে পারে কিনা।
লরেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.