• 1399/03/02

کار نکردن یک کد :

سلام. من دوره جاوا اسکریپت را تا آخر دیده ام. حال کد زیر را برای جاوااسکریپت نوشته ام اما کد من کار نمی کند.

 

<body>
<input type="text" id="txtName">
<input type="button" id="btnName" value="Click">
</body>

<script>
    var txtName = document.getElementById('txtName').value;
    var btnName=document.getElementById('btnName');
    btnName.addEventListener('click',function(){
        alert('Hello'+ txtName);
    });
</script>

 

حال همین کد را به صورت زیر می نویسم و کار می کند.

<body>
<input type="text" id="txtName">
<input type="button" id="btnName" value="Click">
</body>

<script>
    var txtName = document.getElementById('txtName').value;
    var btnName=document.getElementById('btnName');
    btnName.addEventListener('click',function(){
        alert('Hello'+ document.getElementById('txtName').value);
    });
</script>

اشکال کار کجاست؟

  • 1399/03/06
  • ساعت 16:03

این سوال را خودم پرسیدم اما جوابش را پیدا کردم و همین جا می نویسم.

برای کار کردن این کد، باید آن را به این صورت نوشت:

<body>
<input type="text" id="txtName">
<input type="button" id="btnName" value="Click">
</body>

<script>
    var btnName=document.getElementById('btnName');
    btnName.addEventListener('click',function(){
        var txtName = document.getElementById('txtName').value;
        alert('Hello'+ txtName);
    });
</script>

یعنی متغیره مربوط به گرفتن یک ورودی از input را باید درون خود تابع تعریف کرد و نه بیرون تابع.


logo-enamadlogo-samandehi