سلام. من دوره جاوا اسکریپت را تا آخر دیده ام. حال کد زیر را برای جاوااسکریپت نوشته ام اما کد من کار نمی کند.
<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>اشکال کار کجاست؟
این سوال را خودم پرسیدم اما جوابش را پیدا کردم و همین جا می نویسم.
برای کار کردن این کد، باید آن را به این صورت نوشت:
<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 را باید درون خود تابع تعریف کرد و نه بیرون تابع.