راکت

کار نکردن document.getElementByName

2 پاسخ

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

پاسخ‌ها

2
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

درست شد :)

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.
میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

شاید پاسخ شما همین‌جا باشد

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

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