ฉันจะตั้งค่าเริ่มต้นสำหรับองค์ประกอบ <select> HTML ได้อย่างไร


1457

ฉันคิดว่าการเพิ่มแอ"value"ททริบิวต์ที่กำหนดไว้ใน<select>องค์ประกอบด้านล่างจะทำให้การเลือก<option>ของฉัน"value"ที่เลือกไว้เป็นค่าเริ่มต้น:

<select name="hall" id="hall" value="3">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

อย่างไรก็ตามสิ่งนี้ไม่ทำงานอย่างที่ฉันคาดไว้ ฉันจะกำหนด<option>องค์ประกอบที่เลือกไว้เป็นค่าเริ่มต้นได้อย่างไร


ว้าวคำถามนี้มีประโยชน์มากจริง ๆ แล้วมันก็ไปไวรัสฮ่าฮ่า
finnmglas

คำตอบ:


2150

ตั้งค่าselected="selected"สำหรับตัวเลือกที่คุณต้องการให้เป็นค่าเริ่มต้น

<option selected="selected">
3
</option>

19
<option value = "3" selected = "selected"> 3 </option> ค่าจะถูกส่งผ่านเป็นสตริงเมื่อเลือกตัวเลือก 3
Sree Rama

5
และใช้แอตทริบิวต์ id ต่อไปสำหรับ <Select> และไม่ควรใช้แอตทริบิวต์ value สำหรับองค์ประกอบ <select> html
Sree Rama

216
ส่วน = "เลือก" ไม่จำเป็น เพียง <ตัวเลือกที่เลือก> จะทำตามที่กล่าวไว้ในคำตอบอื่น ๆ
MindJuice

56
@MindJuice สิ่งที่ฉันเขียนมีหลายภาษา HTML / XML ที่ถูกต้อง การใช้ <option select> นั้นใช้ได้สำหรับเบราว์เซอร์ แต่อาจทำให้เอกสารถูกปฏิเสธโดย parsers อื่น ฉันพบว่ามีประโยชน์ที่จะสามารถใช้ XPath / XSLT บนเอกสารเว็บเป็นครั้งคราว
Borealid

70
หากคุณใช้แองกูลาร์โปรดทราบว่าng-modelจะแทนที่ค่าเริ่มต้นที่เลือกไว้ (แม้จะไม่ได้กำหนดหากคุณไม่ได้ตั้งค่าวัตถุที่ถูกผูกไว้) เอาฉันสักครู่เพื่อคิดว่าทำไมselected="selected"ตัวเลือกไม่ถูกเลือก
metakermit

624

ในกรณีที่คุณต้องการให้มีข้อความเริ่มต้นเป็นตัวยึดตำแหน่ง / คำใบ้ แต่ไม่ถือว่าเป็นค่าที่ถูกต้อง (เช่น "กรอกที่นี่", "เลือกประเทศของคุณ" ecc.) คุณสามารถทำสิ่งนี้ได้:

<select>
  <option value="" selected disabled hidden>Choose here</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>


60
ฉันคิดว่านี่เป็นสิ่งที่คนส่วนใหญ่มองหา คำตอบที่ดี.
chrisallick

1
มันเป็น jsfiddle ภายนอกที่ css ต้องการเพียงไม่ให้ปรากฏตามขอบของหน้าจอ หลังจากผ่านไปหลายเดือนมันก็ได้รับการแก้ไขไปยังข้อมูลโค้ดอินไลน์และคนที่แก้ไขนั้นก็เก็บไว้ในตัวอย่าง คุณสามารถแก้ไขและลบออกจากข้อมูลโค้ดหากมันรบกวนจิตใจคุณ
โนบิตะ

ทางออกที่ดียิ่งขึ้นคือการใช้hiddenแอตทริบิวต์แทน ดูคำตอบของ @ chong-lip-phang ด้านล่าง: stackoverflow.com/a/39358987/1192426
Ivan Akulov

<option value="" selected disabled hidden>Choose here</option>

1
คำตอบที่ยอดเยี่ยม!
japes Sophey

234

ตัวอย่างที่สมบูรณ์:

<select name="hall" id="hall"> 
  <option> 
    1 
  </option> 
  <option> 
    2 
  </option> 
  <option selected> 
    3 
  </option> 
  <option> 
    4 
  </option> 
  <option> 
    5 
  </option> 
</select> 


11
นั่นง่ายกว่าการใช้ select = "selected"
Rodrigo

57
selected = "selected" ควรใช้กับหลักคำสอนทั้งหมด XHTML ไม่ชอบคุณลักษณะที่ไม่มีค่า
ps2goat

14
@Rodrigo มันยากที่จะเขียนselected="selected"จริงๆเหรอ? ฉันหมายถึงคุณกำลังออมอะไรอยู่? เวลา? ขนาด? มันเล็กน้อยและถ้ามันทำให้รหัส "สอดคล้อง" มากกว่าทำไมไม่ทำมัน ?
xDaizu

15
@ DanielParejoMuñozโอเคมันเล็กน้อยมาก แต่ถ้า Doctype ของฉันเป็น html ไม่ใช่ xhtml ทำไมต้องเสีย byte เลย?
Rodrigo

5
selected = "selected" ดูเหมือนว่าเกิดข้อผิดพลาด ในอีกสองสามเดือนฉันอาจเปลี่ยนเป็น select = "3" โดยคิดว่านี่หมายถึงรายการที่ 3 ถูกเลือก (และแบ่งหน้าของฉัน)
Paul McCarthy

92

ฉันเจอคำถามนี้ แต่คำตอบที่ได้รับการยอมรับและมีผู้โหวตสูงไม่สามารถใช้ได้ ปรากฎว่าหากคุณใช้ React การตั้งค่าselectedจะไม่ทำงาน

แต่คุณต้องตั้งค่าใน<select>แท็กโดยตรงดังที่แสดงด้านล่าง:

<select value="B">
  <option value="A">Apple</option>
  <option value="B">Banana</option>
  <option value="C">Cranberry</option>
</select>

อ่านข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่นี่บน React หน้า


2
คุณสามารถตั้งค่าตัวเลือกที่เลือกไว้ล่วงหน้าในรายการดรอปดาวน์โดยใช้แอvalueททริบิวสำหรับ<select>แท็กเช่น<select value="3">แต่มันไม่ถูกต้องในตัวตรวจสอบความถูกต้อง W3C
อัครสาวก

4
ถูกต้อง แต่นี่ไม่ใช่ HTML มันคือ JSX ดังนั้นจึงไม่จำเป็นต้องปฏิบัติตามกฎ W3C HTML ที่สร้างโดย React ในท้ายที่สุดจะมีผลแม้ว่า
MindJuice

ในโลกที่สมบูรณ์แบบนี่เป็นความคิดเห็นของคำถามเนื่องจากไม่ใช่คำตอบที่ถูกต้อง แต่ฉันคิดว่ามันมีค่าพอที่จะไปไหนมาไหน
Justus Romijn

2
ฉันต้องการวิธีแก้ไขปัญหาที่คล้ายคลึงกับข้อเสนอแนะด้านบน แต่ใช้ JQuery แทนที่จะเป็น React ในกรณีนี้จะช่วยให้ทุกคนในอนาคต:$("select").each(function(){ $(this).find('option[value="'+$(this).attr("value")+'"]').prop('selected', true); });
CDK

คำตอบนี้ไม่ถูกต้องคำถามพื้นฐานกำลังพูดถึง HTML ที่ไม่ตอบสนอง (JSX)
แอรอน C

72

คุณสามารถทำได้เช่นนี้:

<select name="hall" id="hall">
    <option> 1 </option>
    <option> 2 </option>
    <option selected> 3 </option>
    <option> 4 </option>
    <option> 5 </option>
</select> 

ระบุคำหลัก "ที่เลือก" ภายในแท็กตัวเลือกซึ่งคุณต้องการให้ปรากฏตามค่าเริ่มต้นในรายการแบบหล่นลง

หรือคุณสามารถระบุแอตทริบิวต์ให้กับแท็กตัวเลือกเช่น

<option selected="selected">3</option>

13
เพื่อให้ชัดเจนมาตรฐาน w3 คือ <ตัวเลือกที่เลือก = "เลือก"> 3 </option>
htmldrum

40
@JRM ฉันคิดว่าสิ่งที่คุณหมายถึงคือถ้าเอกสารของคุณเป็นไปตาม XHTML กว่าแอตทริบิวต์จะต้องมีค่า aa ใน HTML ไม่จำเป็นต้องมี "select = selected" ตัวอย่างบนw3.org/wiki/HTML/Elements/select , developer.mozilla.org/en-US/docs/HTML/Element/selectอย่าระบุค่า สิ่งสำคัญที่ควรทราบselected="false"คือไม่อนุญาตและselected=""ทำให้ถูกเลือก วิธีเดียวในการสร้างตัวเลือกที่ไม่ได้เลือกคือการลบแอททริบิวต์ w3.org/html/wg/drafts/html/master/…
Juan Mendes

3
ฉันไม่เคยเข้าใจว่าคำถามเช่นนี้ได้รับการขึ้นทะเบียนอย่างไร พวกเขาเหมือนคำตอบที่ถูกต้องจริงๆ .. 2 ปีต่อมาฮ่า ๆ ๆ
Phil

51

ถ้าคุณต้องการใช้ค่าจากแบบฟอร์มและทำให้เป็นแบบไดนามิกลองด้วย php

<form action="../<SamePage>/" method="post">


<?php
    $selected = $_POST['select'];
?>

<select name="select" size="1">

  <option <?php if($selected == '1'){echo("selected");}?>>1</option>
  <option <?php if($selected == '2'){echo("selected");}?>>2</option>

</select>
</form>

40

ฉันชอบสิ่งนี้:

<select>
   <option selected hidden>Choose here</option>
   <option value="1">One</option>
   <option value="2">Two</option>
   <option value="3">Three</option>
   <option value="4">Four</option>
   <option value="5">Five</option>
</select>

'เลือกที่นี่' จะหายไปหลังจากเลือกตัวเลือกแล้ว


1
ฉันลองทำสิ่งนี้ แต่ "เลือกที่นี่" ไม่ปรากฏขึ้น ตัวเลือกแรกว่างเปล่า
Bogdan Mates

สิ่งที่เบราว์เซอร์ที่คุณใช้?
ปากลิปพัง

ฉันใช้เบราว์เซอร์ Google Chrome รุ่น 52.0.2743.116 ม.
Bogdan Mates

2
ฉันกำลังใช้เบราว์เซอร์เช่นกันและไม่พบปัญหาใด ๆ
ช่องปากลิปพัง

2
พิจารณาเพิ่มvalue=""เพื่อให้มั่นใจว่าคุณจะได้รับค่าที่ว่างเปล่า
Ryan Walton

31

การปรับปรุงคำตอบของโนบิตะ นอกจากนี้คุณสามารถปรับปรุงมุมมองภาพของรายการแบบหล่นลงโดยซ่อนองค์ประกอบ 'เลือกที่นี่'

<select>
  <option selected disabled hidden>Choose here</option>
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>


25

วิธีที่ดีที่สุดในความคิดของฉัน:

<select>
   <option value="" selected="selected" hidden="hidden">Choose here</option>
   <option value="1">One</option>
   <option value="2">Two</option>
   <option value="3">Three</option>
   <option value="4">Four</option>
   <option value="5">Five</option>
</select>

ทำไมไม่ปิดการใช้งาน?

เมื่อคุณใช้คุณลักษณะที่ปิดใช้งานพร้อมกับ<button type="reset">Reset</button>ค่าจะไม่ถูกรีเซ็ตเป็นตัวยึดตำแหน่งดั้งเดิม เบราว์เซอร์แทนเลือกตัวเลือกแรกที่ไม่ได้ปิดการใช้งานซึ่งอาจทำให้เกิดข้อผิดพลาดของผู้ใช้

ค่าเริ่มต้นที่ว่างเปล่า

ทุกรูปแบบการผลิตมีการตรวจสอบแล้วค่าที่ว่างเปล่าไม่ควรเป็นปัญหา ด้วยวิธีนี้เราอาจจะไม่ต้องเลือกว่างเปล่า

แอตทริบิวต์ของไวยากรณ์ XHTML

selected="selected"ไวยากรณ์เป็นวิธีเดียวที่จะเข้ากันได้กับทั้ง XHTML และ HTML 5 เป็นไวยากรณ์ XML ที่ถูกต้องและบรรณาธิการบางคนอาจมีความสุขกับเรื่องนี้ มันเข้ากันได้ย้อนหลังมากขึ้น ฉันไม่มีความรู้สึกที่แข็งแกร่งเกี่ยวกับเรื่องนี้ แต่ถ้าข้อโต้แย้งดังกล่าวข้างต้นเป็นข้อกำหนดของคุณคุณควรปฏิบัติตามไวยากรณ์เต็ม


นั่นซ่อนตัวเลือกทั้งหมดสำหรับฉัน
ADEL NAMANI

@ADELNAMANI คุณสามารถระบุลิงก์ไปยังรหัสของคุณได้หรือไม่ ฉันเดาว่าปัญหาของคุณไม่เกี่ยวข้องกับคำตอบของฉัน
Michał Mielec

19

ตัวอย่างอื่น; ใช้ JavaScript เพื่อตั้งค่าตัวเลือกที่เลือก

(คุณสามารถใช้ตัวอย่างนี้เพื่อวนอาร์เรย์ของค่าลงในองค์ประกอบแบบหล่นลง)

<select id="yourDropDownElementId"><select/>

// Get the select element
var select = document.getElementById("yourDropDownElementId");
// Create a new option element
var el = document.createElement("option");
// Add our value to the option
el.textContent = "Example Value";
el.value = "Example Value";
// Set the option to selected
el.selected = true;
// Add the new option element to the select element
select.appendChild(el);

ไม่ควรที่จะel.selected = "selected";ปฏิบัติตามมาตรฐาน w3 หรือไม่?
7yl4r

5
@ 7yl4r No. selectedเป็นคุณสมบัติบูลีนตามที่กำหนดโดย w3c - w3.org/TR/html401/interact/forms.html `17.6.1 ตัวเลือกที่เลือกล่วงหน้าเลือก [CI] - เมื่อตั้งค่าแอตทริบิวต์บูลีนนี้ระบุว่าตัวเลือกนี้คือ ที่เลือกไว้ล่วงหน้า 'สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานให้ดูที่โรงเรียน w3c - w3schools.com/jsref/prop_option_selected.asp
Ally

14

เลือกแอตทริบิวต์เป็นแอตทริบิวต์แบบบูล

เมื่อมีอยู่จะระบุว่าควรเลือกตัวเลือกล่วงหน้าเมื่อโหลดหน้าเว็บ

ตัวเลือกที่เลือกไว้ล่วงหน้าจะปรากฏขึ้นเป็นลำดับแรกในรายการแบบหล่นลง

<select>
  <option value="volvo">Volvo</option>
 <option value="saab">Saab</option>
 <option value="vw">VW</option>
 <option value="audi" selected>Audi</option> 
</select> 

10

หากคุณอยู่ในปฏิกิริยาคุณสามารถใช้defaultValueเป็นคุณลักษณะแทนvalueในแท็กเลือก


7

หากคุณใช้ select กับ angular 1 คุณต้องใช้ ng-init ไม่เช่นนั้นตัวเลือกที่สองจะไม่ถูกเลือกเนื่องจาก ng-model จะแทนที่ค่า defaul ที่เลือก

<select ng-model="sortVar" ng-init='sortVar="stargazers_count"'>
  <option value="name">Name</option>
  <option selected="selected" value="stargazers_count">Stars</option>
  <option value="language">Language</option>
</select>

4

ฉันใช้ฟังก์ชัน php นี้เพื่อสร้างตัวเลือกและแทรกลงใน HTML ของฉัน

<?php
  # code to output a set of options for a numeric drop down list
  # parameters: (start, end, step, format, default)
  function numericoptions($start, $end, $step, $formatstring, $default)
  {
    $retstring = "";
    for($i = $start; $i <= $end; $i = $i + $step)
    {
      $retstring = $retstring . '<OPTION ';
      $retstring = $retstring . 'value="' . sprintf($formatstring,$i) . '"';
      if($default == $i)
      {
        $retstring = $retstring . ' selected="selected"';
      }
      $retstring = $retstring . '>' . sprintf($formatstring,$i) . '</OPTION> ';
    }

  return $retstring;
  }

?>

แล้วในรหัสหน้าเว็บของฉันฉันใช้มันดังต่อไปนี้;

<select id="endmin" name="endmin">
  <?php echo numericoptions(0,55,5,'%02d',$endmin); ?>
</select>

หาก $ endmin สร้างขึ้นจากตัวแปร _POST ทุกครั้งที่โหลดหน้าเว็บ (และรหัสนี้อยู่ในรูปแบบที่โพสต์) ดังนั้นค่าที่เลือกไว้ก่อนหน้านี้จะถูกเลือกโดยค่าเริ่มต้น


4

แอตทริบิวต์ของแท็กค่าหายไปดังนั้นจึงไม่แสดงตามที่คุณต้องการ ตามค่าเริ่มต้นตัวเลือกแรกจะแสดงเมื่อโหลดหน้าเว็บแบบเลื่อนลงหากมีการตั้งค่าแอตทริบิวต์ในแท็ก .... ฉันแก้ปัญหาด้วยวิธีนี้แล้ว


4

รหัสนี้ตั้งค่าเริ่มต้นสำหรับองค์ประกอบการเลือก HTML ด้วย PHP

<select name="hall" id="hall">
<?php
    $default = 3;
    $nr = 1;
    while($nr < 10){
        if($nr == $default){
            echo "<option selected=\"selected\">". $nr ."</option>";
        }
        else{
            echo "<option>". $nr ."</option>";
        }
        $nr++;
    }
?>
</select>

3

คุณสามารถใช้ได้:

<option value="someValue" selected>Some Value</option>

แทน,

<option value="someValue" selected = "selected">Some Value</option>

ทั้งสองถูกต้องเท่าเทียมกัน


3

ฉันเพิ่งจะเลือกค่าตัวเลือกแรกเป็นค่าเริ่มต้นและเพียงซ่อนค่านั้นในรายการดรอปดาวน์ด้วยคุณลักษณะ "ซ่อน" ใหม่ของ HTML5 แบบนี้:

   <select name="" id="">
     <option hidden value="default">Select An Option</option>
     <option value="1">One</option>
     <option value="2">Two</option>
     <option value="3">Three</option>
     <option value="4">Four</option>
   </select>

2

ฉันเองใช้มัน

<select selected=''>
    <option value=''></option>
    <option value='1'>ccc</option>
    <option value='2'>xxx</option>
    <option value='3'>zzz</option>
    <option value='4'>aaa</option>
    <option value='5'>qqq</option>
    <option value='6'>wwww</option>
</select>

2

คุณเพียงแค่ต้องใส่คุณสมบัติ "เลือก" ในตัวเลือกเฉพาะแทนโดยตรงเพื่อเลือกองค์ประกอบ

นี่คือตัวอย่างข้อมูลสำหรับตัวอย่างการทำงานที่เหมือนกันและหลายค่าที่แตกต่างกัน

   Select Option 3 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option>2</option>
    <option selected="selected">3</option>
    <option>4</option>
    <option>5</option>
   </select>
   
   <br/>
   <br/>
   <br/>
   Select Option 5 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option selected="selected">5</option>
   </select>
   
    <br/>
   <br/>
   <br/>
   Select Option 2 :- 
   <select name="hall" id="hall">
    <option>1</option>
    <option selected="selected">2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
   </select>


2

Set selected = "selected" โดยที่ค่าตัวเลือกคือ 3

โปรดดูตัวอย่างด้านล่าง

<option selected="selected" value="3" >3</option>

ใน Firefox มันจะไม่ทำงานในการโหลดหน้าใหม่
Sebastian

ในระบบของฉันทำงานกับ firefox
Akbor

1

ปัญหา<select>คือในบางครั้งก็ตัดการเชื่อมต่อกับสถานะของสิ่งที่แสดงในปัจจุบันและถ้าบางสิ่งบางอย่างมีการเปลี่ยนแปลงในรายการตัวเลือกจะไม่มีการคืนค่าการเปลี่ยนแปลง นี่อาจเป็นปัญหาเมื่อพยายามเลือกตัวเลือกแรกจากรายการ รหัสต่อไปนี้จะได้รับตัวเลือกแรกเป็นครั้งแรกที่เลือก แต่onchange="changeFontSize(this)"ด้วยตนเองจะไม่ มีวิธีการที่อธิบายไว้ข้างต้นโดยใช้ตัวเลือกจำลองเพื่อบังคับให้ผู้ใช้ทำการเปลี่ยนแปลงค่าเพื่อรับค่าแรกที่แท้จริงเช่นการเริ่มต้นรายการด้วยค่าว่าง หมายเหตุ: onclick จะเรียกใช้ฟังก์ชันสองครั้งรหัสต่อไปนี้ไม่ได้ แต่แก้ปัญหาครั้งแรก

<label>Font Size</label>
<select name="fontSize" id="fontSize" onfocus="changeFontSize(this)" onchange="changeFontSize(this)">           
    <option value="small">Small</option>
    <option value="medium">Medium</option>
    <option value="large">Large</option>
    <option value="extraLarge">Extra large</option>
</select>

<script>
function changeFontSize(x){
    body=document.getElementById('body');
    if (x.value=="extraLarge") {
        body.style.fontSize="25px";
    } else {
        body.style.fontSize=x.value;
    }
}
</script>

1

ฉันใช้ Angular และฉันตั้งค่าตัวเลือกเริ่มต้นด้วย

เทมเพลต HTML

<select #selectConnection [(ngModel)]="selectedVal" class="form-control  col-sm-6 "  max-width="100px"   title="Select" 
      data-size="10"> 
        <option  >test1</option>
        <option >test2</option>      
      </select>

สคริปต์:

sselectedVal:any="test1";

0

นี่คือสิ่งที่ฉันทำ ...

<form action="../<SamePage>/" method="post">

<?php
    if ( $_POST['drop_down'] == "")
    {
    $selected = "";
    }
    else
    {
    $selected = "selected";
    }
?>

<select name="select" size="1">

  <option value="1" <?php $selected ?>>One</option>
     ////////  OR  ////////
  <option value="2" $selected>Two</option>

</select>
</form>

4
ดูเหมือนจะมีความไม่สอดคล้องกันในการแก้ปัญหานี้ หากชื่อขององค์ประกอบคือ "select" คีย์ตัวแปร $ _POST ไม่ควรเป็น "select" - "drop_down" มาจากไหน? นอกจากนี้สมมติว่าเป็นข้อผิดพลาดและนี่คือการตรวจสอบตัวแปร $ _POST ['select'] เพื่อดูค่าค่าที่ไม่ว่างจะส่งคืนค่าจริงและดังนั้นรายการ <option> ทั้งหมดจะถูกทำเครื่องหมาย "เลือก" บางทีฉันอาจจะขาดอะไรบางอย่างไปกับคำตอบนี้?
Ryan

0

คุณสามารถลองสิ่งนี้

  <select name="hall" id="hall">
      <option>1</option>
      <option>2</option>
      <option selected="selected">3</option>
      <option>4</option>
      <option>5</option>
    </select>

0

ตัวอย่าง HTML:

<select data-selected="public" class="form-control" name="role">
    <option value="public">
        Pubblica
    </option>
    <option value="user">
        Utenti
    </option>
    <option value="admin">
        Admin
    </option>
</select>

ตัวอย่าง JavaScript ดั้งเดิม:

document.querySelectorAll('[data-selected]').forEach(e => {
   e.value = e.dataset.selected
});

0
Upstream System:
<select name=upstream id=upstream>
<option value="SYBASE">SYBASE ASE
<option value="SYBASE_IQ">SYBASE_IQ
<option value="SQLSERVER">SQLSERVER
</select>
<script>
var obj=document.getElementById("upstream");
for (var i=0;i<obj.length;i++){if(obj.options[i].value==="SYBASE_IQ")obj.selectedIndex=i;}
</script>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.