محسن مهری
5 سال پیش توسط محسن مهری مطرح شد
2 پاسخ

کار نکردن document.getElementByName

سلام به همگی خسته نباشید
شاید فک کنید سوالم یکم مسخره است اما باور کنین این خط کد کار نمیکنه
اما فقط کافیه 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>

ثبت پرسش جدید
محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 5 سال پیش مطرح شد
0

درست شد :)

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.

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام