سلام دوستان من میخام از دو فیلد مقدارش رو دریافت کنم و در یک خروجی به نمایش بگذارم ولی متاسفانه ارور دریافت می کنم لطف می کنید کمک کنید
@ali.bayat
داخل لینک زیر به شکل کامل سورس کد رو به نمایش گذاشتم:
https://jsfiddle.net/mzfc05tb
حالا یک سوال دارم می تونم مقدار خروجی یک تابع رو داخل یک متغیر بریزیم؟
کدهاتون رو درست قرار بدین که بشه بخونیمشون. واضح نیستش.
راهنما: https://roocket.ir/faq پرسش 9
@milad
سلام اطلاح کردم
ممنون
شاید پاسخ شما همینجا باشد
سلام
وقتی با استفاده از 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
سوال دوم تون هم پاسخش بله هستش. منتها نه با این روش کدی که شما نوشتید.
اگر امکانش هست لطف می کنید راهنمایی کنید
ممنون
@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
@info
سلامت باشی عزیز جان، همون دکمه تشکر رو بزنی خودش تشکر هستش.
موفق باشی
سلام مجدد به میلاد عزیز
میلاد جان من میخوام یه شرطی رو تعریف کنم اگه این متغیر ابتدایه دو عددش صفر بود بیا این کار رو انجام بده،این قسمت ابتدایه دو عددش رو چظوری تعریف کنم؟
متدی هست؟
@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 رو بر می گردونه.
ببین دنبال چی هستی و چه مقداری رو می خوای در نهایت نگه داری و استفاده کنی، بیرون تابع براش یک یا چند متغیر عمومی تعریف کن، داخل تابع پس از فعل و انفعالات لازم مقداردهی کن اون رو. اینجوری می تونی ازش استفاده کنی.
الان میخام پاسخ در شرط ها رو برگدونه،الان چیکار کنم؟اصلا گیج شدم
@milad
مثلا متغیرها رو بیرون تابع تعریف کن.
بعدا هر جایی لازم بود بهشون دسترسی داری.
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 حذف کردم. توام باید حذف کنی.