PDA

View Full Version : راهنمایی کد جاوا اسکریپت



hidd3n
شنبه 11 آبان 1398, 14:44 عصر
سلام
دوستان من یک کد دارم که محاسبات انجام میده واسم ،میخواستم به جای اینکه کاربر کلیک کنه روی دکمه تا جواب رو ببینه ،طوری باشه که وقتی اطلاعات را بهش داد خودش جواب رو توی یک lable نشان بده ؟؟
ممنون میشم راهنمایی کنید.


var vaznLoolehMobli = function() {
var num1 = document.getElementsByClassName("ghotrlooleh-input")[0].value;
var num2 = document.getElementsByClassName("zekhamatlooleh-input")[0].value;
var num3 = document.getElementsByClassName("zaribloolemobli-input")[0].value;
var answer = Number(num1) * Number(num2) * Number(num3);
var kilo = " کیلوگرم"
answer = answer.toPrecision(4);
document.getElementById("vazneloolehmobli").innerHTML = answer + (kilo) ;
};




اینم کد ووردی html


<form>
<label style="color: #222; font-size: 13px; padding-right: 50px;"> طول مقطع A <sup> mm </sup> : </label>
<input class="toolemaghta-input" style="border: 1px solid #2229; text-align: center;border-radius: 3px;" type="text" placeholder="طول مقطع را وارد کنید" />

<label style="color: #222; font-size: 13px; padding-right: 45px;"> عرض مقطع B <sup> mm </sup> : </label>
<input class="arzemaghta-input" style="border: 1px solid #2229; text-align: center; border-radius: 3px;" type="text" placeholder="عرض مقطع را وارد کنید" />

<label style="color: #222; font-size: 13px; padding-right: 35px;"> ضخامت پروفیل t <sup> mm </sup> : </label>
<input class="zekhamateprofile-input" style="border: 1px solid #2229; text-align: center; border-radius: 3px;" type="text" placeholder="ضخامت پروفیل را وارد کنید" />

<input class="zaribprofilesabok-input" style="border: 1px solid black; text-align: center; display: none;" disabled="disabled" type="text" value="0.0930" />
<br><br>
<button class="multiply" style="background: #28395e; width: 190px;border-radius: 3px;" type="button" onClick="vaznProfileSabok()">محاسبه</button>
<br><br>

<label style="color: #222; font-size: 13px; padding-right: 25px;"> وزن هر شاخه 6 متری (kg) : </label>
<label id="answervazneprosabok" style="border: 1px solid rgba(0, 0, 0, 0.33);width: 190px; text-align: center; background: white;border-radius: 3px;">۰</label>
</form>

ASHKANLAEI
شنبه 11 آبان 1398, 15:31 عصر
به جای رویداد onclick در دکمه، از رویداد onchange در فیلد ها استفاده کنید

ASHKANLAEI
شنبه 11 آبان 1398, 15:32 عصر
به جای رویداد onclick در دکمه، از رویداد onchange در فیلد ها استفاده کنید
برای اولین فیلد، این طوری میشه:

<input class="toolemaghta-input" style="border: 1px solid #2229; text-align: center;border-radius: 3px;" type="text" placeholder="طول مقطع را وارد کنید" onchange="vaznProfileSabok()" />

hidd3n
یک شنبه 12 آبان 1398, 20:32 عصر
برای اولین فیلد، این طوری میشه:

<input class="toolemaghta-input" style="border: 1px solid #2229; text-align: center;border-radius: 3px;" type="text" placeholder="طول مقطع را وارد کنید" onchange="vaznProfileSabok()" />

سلام
دوست عزیز انجام دادم و اضافه کردم بجای onclick ولی اجرا نمیشه ؟
دکمه محاسبه رو چکار کنم ؟ حدف کنم ؟؟
مرسی

ASHKANLAEI
دوشنبه 13 آبان 1398, 06:22 صبح
شما در کلاس های html تون یک چیز نوشتید اما در کد جاوااسکریپت چیز دیگری نوشتید!
مثلا داخل script نوشتید document.getElementsByClassName("zaribloolemobli-input")
در حالی که در صفحۀ html تون تگی با کلاس zaribloolemobli-input وجود نداره!

ASHKANLAEI
دوشنبه 13 آبان 1398, 06:22 صبح
دکمه محاسبه رو چکار کنم ؟ حدف کنم ؟؟
بله دیگه به اون نیازی نیست

hidd3n
دوشنبه 13 آبان 1398, 09:48 صبح
بله دیگه به اون نیازی نیست

من عذرخواهی میکنم از شما دوست عزیز.
تمام کارهایی که گفتید و انجام دادم ولی انجام نشد ؟؟
الان کدها رو ساده کردم html میشه ببینید مشکل از کجاست ؟

کد html


<input type="text" id="tb1" size="14" onchange="vaznLoolehMobli()"/>
<input type="text" id="tb2" size="14" onchange="vaznLoolehMobli()"/>

این دوتا اطلاعات و از کاربر میگیره و در hnput زیر نمایش میده

<input type="text" id="tb3" size="14" disabled />



و کد جاوا اسکریپت هم به شکل زیر می باشد :

<script type="text/javascript">

/**/
var vaznLoolehMobli = function() {
var num1 = document.getElementById("tb1")[0].value;
var num2 = document.getElementById("tb2")[0].value;
var answer = Number(num1) * Number(num2) *;
var kilo = " کیلوگرم"
answer = answer.toPrecision(4);
document.getElementById("tb3").innerH TML = answer + (kilo) ;
};




</script>

ASHKANLAEI
دوشنبه 13 آبان 1398, 14:33 عصر
اولاً شما در تبدیل کد یکسری مشکل داشتید که درست کردم. مثلا شما زمانی که از id استفاده میکنید دیگه بهتون آرایه نمیده که [0] رو بنویسید.
ثانیاً این صفحه رو با کد های فعلی تون نوشتم، بفرمایید: