کار نکردن document.getElementByName

6 روز پیش
توسط میلاد آپدیت شد
محسن مهری ( 9370 تجربه )
6 روز پیش

سلام به همگی خسته نباشید
شاید فک کنید سوالم یکم مسخره است اما باور کنین این خط کد کار نمیکنه
اما فقط کافیه name رو به id تغییر بدم اون وقت کار میکنه ( اما من حتما اینجوری نیاز دارم کار کنه یعنی با نام انتخاب کنه یک input رو)

<div class="container mt-2 pt-4">
  <form action="/action_page.php" class="form">
       <div class="form-group">
         <input id="name1" name="name1" type="text" class="form-control"  placeholder="name">
       </div>
       <div class="form-group">
         <input id="name2" name="name2" type="text" class="form-control"  placeholder="number">
       </div>
    </form>
</div> 
<script type="text/javascript">
   document.getElementById("name1").value="hello name1";//true
   document.getElementByName("name2").value="hello name2";//false
</script>
محسن مهری ( 9370 تجربه )
6 روز پیش

درست شد :)

document.getElementsByName("name1")[0].value="hello name1";//true
   document.getElementsByName("name2")[0].value="hello name2";//true

stackoverflow : 

document.getElementsByName() returns a NodeList, so you have to access it by an index: document.getElementsByName('staff_counter')[0] (depending on how many of these you have).

You also have access to a length property to check how many Elements were matched.
میلاد ( 122820 تجربه )
6 روز پیش
تخصص : طراح رابط کاربری - Front-End

دلیلش اینه که تابع getElementById یک عنصر رو انتخاب میکنه و بر می گردونه، ولی تابع getElementsByName یک شبه آرایه (NodeList) رو برمیگردونه، بنابراین باید ازین شبه آرایه عنصر که مدنظرتون هستش رو بگیرید که از طریق اندیس صفر، تونستید عنصر مدنظرتون رو بگیرید.

برای ارسال پاسخ باید وارد سایت شوید