ක්ලික් කළ හැකි ලේබලයක් සහිත පිරික්සුම් කොටුවක් නිර්මාණය කරන්නේ කෙසේද?


1030

ක්ලික් කළ හැකි ලේබලයක් සහිත HTML පිරික්සුම් කොටුවක් මා නිර්මාණය කරන්නේ කෙසේද (මෙයින් අදහස් කරන්නේ ලේබලය මත ක්ලික් කිරීමෙන් පිරික්සුම් කොටුව සක්‍රිය / අක්‍රිය කරන බවයි)?


Answers:


1935

ක්රමය 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>සත්‍ය ලේබල් පා text ය කොතරම් දුරින් තිබුණත්, ඔබ කුමන ආකාරයේ CSS වුවත් එයට අදාළ වේ.

සමහර CSS සමඟ නිරූපණය:

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
Bo ජෝන් යනු විශේෂයෙන් බූට්ස්ට්‍රැප් සඳහා සලකුණු කිරීමේ මාර්ගෝපදේශයකි. ඔබ රාමුවක් භාවිතා නොකරන්නේ නම් හෝ වෙනත් එකක් භාවිතා කරන්නේ නම් එය සම්පූර්ණයෙන්ම හොඳින් විය යුතුය. පිළිතුරට ස්තුතියි.
වෙස්ලි මර්ච්

3
@ ජෝන්. ඔබ සම්බන්ධ කරන පිටුවේ, බූට්ස්ට්‍රැප් උදාහරණ සියල්ලම ලේබලය සමඟ ඔතා ඇති පිරික්සුම් කොටුව, ඔබ කිසිසේත්ම ඇඟවුම් කරන පරිදි කිසිදු අනතුරු ඇඟවීමක් මා දකින්නේ නැත, සමහර විට එය නවතම බූට්ස්ට්‍රැප් වලට අදාළ නොවේ.
user2144406

2
මම අද ඉගෙන ගත් පරිදි, ක්‍රමය 1 සහ ක්‍රමය 2 මිශ්‍ර නොකරන්න. ඔබ පිරික්සුම් කොටුව ලේබලය තුළට ඔතා ඒ සඳහා ඇතුළත් කරන්නේ නම්, ලේබලය මත ක්ලික් කිරීමෙන් පිරික්සුම් කොටුව අවුලුවන්නේ නැත.
BBlake

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
ArLarsH - ඔව්, ඔබ පිරික්සුම් කොටු කණ්ඩායම් නිර්මාණය කරන්නේ එලෙසයි.
ක්වෙන්ටින්

ස්තූතියි. මම w3.org/wiki/HTML/Elements/input/checkbox දෙස බැලූ අතර එය ඒ සම්බන්ධයෙන් ප්‍රයෝජනවත් නොවීය.
LarsH

2
PHP සමඟ, $ _POST ['foo'] සෑම විටම එක වරකට උපරිම අගයන් දෙකෙන් එකක් තිබේද? දෙකම පරීක්ෂා කළත්. පිරික්සුම් කොටුවක් යනු කුමක්ද?
jeromej

2
E ජෙරොම්ජේ: php එය නිවැරදිව හැසිරවීමට නම්, ඔබ නමට වර්ග වරහන් එක් කළ යුතුය, උදා : <input type="checkbox" name="foo[]" value="bar" ...>. මෙය ඔබට පරීක්ෂා කරන ලද සියලුම පෙට්ටිවල අගයන් අඩංගු අරාවක් ලබා දෙනු ඇත (මෙම නම ඇති). උදාහරණයක් ලෙස $_POST['foo'][0]විය හැකිය barසහ $_POST['foo'][1]විය හැකිය baz(දෙකම පරීක්ෂා කර ඇත්නම්).
ලෙවී

11

ඔබගේ සියලුම පිරික්සුම් කොටුවේ වටිනාකම් වලින් (පිළිවෙලින්) ඔබේ ලේබල තෝරා ගැනීමට සහ ප්‍රදර්ශනය කිරීමට ඔබට CSS ව්‍යාජ අංග භාවිතා කළ හැකිය.
සංස්කරණය කරන්න: මෙය ක්‍රියාත්මක වන්නේ වෙබ්කිට් සහ බ්ලින්ක් පදනම් කරගත් බ්‍රව්සර් (ක්‍රෝම් (අයිම්), සෆාරි, ඔපෙරා ....) සහ බොහෝ ජංගම බ්‍රව්සර් සමඟ පමණි. කිසිදු ෆයර්ෆොක්ස් හෝ 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
පහත් කොට ඇත. එය කළ හැකි වුවත්, එය නරක ක්‍රමයකි - බොහෝ බ්‍රව්සර් වල ක්‍රියා නොකරයි, ප්‍රවේශ වීමට හොඳ නැත.
ජේම්ස් බිලින්හැම්

අනුකූලතා ගැටලු පසෙකට දැමුවහොත්, මෙම විසඳුම ඉහළම පිළිතුර තරම් අර්ථාන්විත නොවේ, මන්ද <label> සහ <input>
deadboy

"එය වෙබ්කිට් / බ්ලින්ක් මත ක්‍රියා කරයි" ( ස්ටක් ඕවර්ෆ්ලෝ.කොම් / ques / 2587669 / ) භාවිතා කරන දෝෂයක් මෙන් දැනේ, එබැවින් එය ඕනෑම වේලාවක වැඩ කිරීම නවතා දැමිය හැකිය.
සෙනෝස්


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

1
එය සමහර පාඨකයන්ට වැට්ටවීමට කල හැකි බැවින්, ඔබ වෙනස් කළ යුතු ය name'විශේෂණය වටිනාකම දෙයක් වෙනස් කිරීමට ඉදිරිපත් වන බව වටිනාකමට වඩා forහා id, උපලක්ෂණ මේ දෙක සම්බන්ධ බැවින්, එනමුදු nameනොවේ (එය මට නමුත් විශ්වාස ඇතුළත් කළ යුතු අනිවාර්ය stil මිල) .
Dzhuneyt

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>

1
ටැගය තුළ ඇත්තේ එක් ආදාන අංගයක් පමණක් බැවින් ඔබේ උදාහරණයේ ඇති ගුණාංග forසහ idගුණාංග ඉවත් කළ හැකිය label.
Dzhuneyt

2

මෙය ඔබට උදව් විය යුතුය: W3 පාසල් - ලේබල

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


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
මෙය සිදු කිරීම සඳහා ජාවාස්ක්‍රිප්ට් භාවිතා කිරීම අවශ්‍ය නොවේ. එය HTML තුළට සාදා ඇත.
ලාස් බන්ක්

4
As ලාස්බන්ක්, එය ජාවාස්ක්‍රිප්ට් පමණක් නම්, නමුත් මෙය ක්‍රියාත්මක වීමට මුළු jQuery පුස්තකාලය අවශ්‍ය වේ. යමෙකුට කෝණික 2 විසඳුමක් ඉදිරිපත් කළ හැකිදැයි බලමු.
ලෝරන්ට්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.