سلام دوستان من میخام از دو فیلد مقدارش رو دریافت کنم و در یک خروجی به نمایش بگذارم ولی متاسفانه ارور دریافت می کنم لطف می کنید کمک کنید
@ali.bayat
داخل لینک زیر به شکل کامل سورس کد رو به نمایش گذاشتم:
https://jsfiddle.net/mzfc05tb
حالا یک سوال دارم می تونم مقدار خروجی یک تابع رو داخل یک متغیر بریزیم؟
کدهاتون رو درست قرار بدین که بشه بخونیمشون. واضح نیستش.
راهنما: https://roocket.ir/faq پرسش 9
سلام
وقتی با استفاده از getElementsByClassName توی جاوااسکریپت استفاده می کنید به شما ارایه ای از المنت ها با این کلاس میده حالا اگر فقط یک المنت با این کلاس باشه یه ارایه میده با همون یه دونه ایتم. شما باید یه [0] اضافه کنید اونجایی که المنت رو می گیرین یعنی :
let input1=document.getElementsByClassName('input1')[0].value;
let input2=document.getElementsByClassName('input2')[0].value;
البته به نظرم راه حل منطقی ترش اینه که به جای getElementsByClassName از getElementById استفاده کنید چون این متود فقط یک نتیجه بر میگردونه و شما هم فقط یک اینپوت دارین دیگه.
@info
دلیلش انتخابگرتون هستش.
تابع getElementsByClassName یک NodeList به شما برمی گردونه، نه یک عنصر رو.
همونطور که دوستمون گفتند باید مشخص کنید کدوم عنصرش رو می خواید.
نکته دوم: پیشنهاد می کنم بیشتر برای انتخاب کردن عناصر از تابع زیر استفاده کنید، فوق العاده راه دست و کاربردی هستش.
document.querySelector()
الان مشکلم رو حل کردم:
let button=document.querySelector('#buttonForm');
button.addEventListener('click',function(){
let input1=document.querySelector('#input1');
let valueInput1=input1.value;
let input2=document.querySelector('#input2');
let valueInput2=input2.value;
let totalValue=valueInput1+valueInput2;
});
حالا متدی هست که بخوام بگم اگر شماره ملیه وارد شده ابتداش 00 داشت رو حذف کن بعد بیا به اول جمع تمام اعداد دو تا فیلد اضافه کن؟
https://jsfiddle.net/zkwr53fm
@mamaliosezar
@milad
یک روش خیلی خوب استفاده از عبارات با قاعده و تابع replace هستش.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/replace
روش ساده تر هم که به شما پیشنهاد میدم استفاده از تابع slice() برای جدا کردن دو عنصر اول و بررسی هستش.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\_Objects/String/slice
حتی میشه ازین تابع هم استفاده کنی:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
سلام مجدد به میلاد عزیز
میلاد جان من میخوام یه شرطی رو تعریف کنم اگه این متغیر ابتدایه دو عددش صفر بود بیا این کار رو انجام بده،این قسمت ابتدایه دو عددش رو چظوری تعریف کنم؟
متدی هست؟
@milad
سلامت باشی
ببین این توابعی که معرفی کردم برای همین منظور بودند دیگه، عددی که میگی، در واقع بصورت یک رشته از عددها هستش. یعنی بیای و به کمک این توابع دو رقم اول عدد رو از رشته جدایی کنی و سپس با رشته ی "00" مقایسه کنی.
تابع دوم و سومی که گفتم رو بررسی کن.
میلاد جان سلام ممنونم ازت مشکل حل شد فقط متدی پیدا نمی کنم که 00 رو اضافه کنه می تونی کمک کنی؟
ممنون
کدهامو تو همون لینک مجددا بارگذاری کردم اگر امکانش هست یک نگاهی بنداز:)
https://jsfiddle.net/L8vfb9ar
@milad
سلامت باشی، خدارو شکر
00 رو بهش اضافه کنی؟ تابع خاصی نمیخوادش، با خود عملگر + میتونی انجامش بدی.
let x = '12345';
let y = '00' + x;
console.log(y); // "0012345"
حالا یه سوال دارم خروجی این رو چطوری برگردونم؟یکم گیج شدم
let button=document.querySelector('#buttonForm');
button.addEventListener('click',function(){
let input1=document.querySelector('#input1');
let valueInput1=input1.value;
let valueInput1S=toString(valueInput1)
let input2=document.querySelector('#input2');
let valueInput2=input2.value;
let valueInput2S=toString(valueInput2);
if(valueInput2.substring(0,2)=="00"){
let valurInput2Org=valueInput2.substring(2,30)
let valueInput1Org="00"+ valueInput1S+valurInput2Org
}else{
let valueInput2orgf=valueInput2.substring(0,30);
let valueInput1orgf=valueInput1S+valueInput2orgf;
}
});
الان اومدی گفتی که وقتی روی دکمه کلیک شدش، ی مواردی رو بررسی کنه و در صورت لزوم تغییراتی رو بوجود بیاره.
دیگه بستگی داره که هدف نهایی تو چی باشه که بخوای به نتیجه برسونیش.
تابع addEventListener خروجی undefined رو بر می گردونه.
ببین دنبال چی هستی و چه مقداری رو می خوای در نهایت نگه داری و استفاده کنی، بیرون تابع براش یک یا چند متغیر عمومی تعریف کن، داخل تابع پس از فعل و انفعالات لازم مقداردهی کن اون رو. اینجوری می تونی ازش استفاده کنی.
مثلا متغیرها رو بیرون تابع تعریف کن.
بعدا هر جایی لازم بود بهشون دسترسی داری.
let valurInput2Org, valueInput1Org, valueInput2orgf, valueInput1orgf;
let button=document.querySelector('#buttonForm');
button.addEventListener('click',function(){
let input1=document.querySelector('#input1');
let valueInput1=input1.value;
let valueInput1S=toString(valueInput1)
let input2=document.querySelector('#input2');
let valueInput2=input2.value;
let valueInput2S=toString(valueInput2);
if(valueInput2.substring(0,2)=="00"){
valurInput2Org=valueInput2.substring(2,30)
valueInput1Org="00"+ valueInput1S+valurInput2Org
}else{
valueInput2orgf=valueInput2.substring(0,30);
valueInput1orgf=valueInput1S+valueInput2orgf;
}
});
میلاد جان سلام ببخشید مزاحم شدم ولی متاسفانه ارور undefined رو بر میگردونه،چرا؟
let valueInput1Org,valueInput1orgf;
let button=document.querySelector('#buttonForm');
button.addEventListener('click',function(){
let input1=document.querySelector('#input1');
let valueInput1=input1.value;
let valueInput1S=toString(valueInput1)
let input2=document.querySelector('#input2');
let valueInput2=input2.value;
let valueInput2S=toString(valueInput2);
if(valueInput2S.substring(0,2)=="00"){
let valurInput2Org=valueInput2S.substring(2,30)
let valueInput1Org="00"+ valueInput1S+valurInput2Org
}else{
let valueInput2orgf=valueInput2S.substring(0,30);
let valueInput1orgf=valueInput1S+valueInput2orgf;
}
});
let orginal=valueInput1Org||valueInput1orgf;
console.log(orginal)
میشه کمک کنی ممنون
@milad
برای اینکه اومدی داخل شرط ها، دوباره متغیر رو از نو تعریف کردی.
به کد من دقت کن، من let هارو از داخل if else حذف کردم. توام باید حذف کنی.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟