amin78_tech
5 سال پیش توسط amin78_tech مطرح شد
27 پاسخ

دریافت مقدار از دو فیلد

سلام دوستان من میخام از دو فیلد مقدارش رو دریافت کنم و در یک خروجی به نمایش بگذارم ولی متاسفانه ارور دریافت می کنم لطف می کنید کمک کنید
@ali.bayat

داخل لینک زیر به شکل کامل سورس کد رو به نمایش گذاشتم:
https://jsfiddle.net/mzfc05tb
حالا یک سوال دارم می تونم مقدار خروجی یک تابع رو داخل یک متغیر بریزیم؟


ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

کدهاتون رو درست قرار بدین که بشه بخونیمشون. واضح نیستش.
راهنما: https://roocket.ir/faq پرسش 9


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
1

@milad
سلام اطلاح کردم
ممنون


مهدی عقیقی
تخصص : برنامه نویس وب
@MehdiAghighi 5 سال پیش مطرح شد
1

سلام
وقتی با استفاده از getElementsByClassName توی جاوااسکریپت استفاده می کنید به شما ارایه ای از المنت ها با این کلاس میده حالا اگر فقط یک المنت با این کلاس باشه یه ارایه میده با همون یه دونه ایتم. شما باید یه [0] اضافه کنید اونجایی که المنت رو می گیرین یعنی :

    let input1=document.getElementsByClassName('input1')[0].value;
    let input2=document.getElementsByClassName('input2')[0].value;

البته به نظرم راه حل منطقی ترش اینه که به جای getElementsByClassName از getElementById استفاده کنید چون این متود فقط یک نتیجه بر میگردونه و شما هم فقط یک اینپوت دارین دیگه.
@info


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

دلیلش انتخابگرتون هستش.
تابع getElementsByClassName یک NodeList به شما برمی گردونه، نه یک عنصر رو.
همونطور که دوستمون گفتند باید مشخص کنید کدوم عنصرش رو می خواید.

نکته دوم: پیشنهاد می کنم بیشتر برای انتخاب کردن عناصر از تابع زیر استفاده کنید، فوق العاده راه دست و کاربردی هستش.

document.querySelector()

amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

الان مشکلم رو حل کردم:

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


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

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


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

اگر امکانش هست لطف می کنید راهنمایی کنید
ممنون
@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش آپدیت شد
1

یک روش خیلی خوب استفاده از عبارات با قاعده و تابع 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


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

میلاد جان ممنونم ازت برسی میکنم اگر مشکل داشتم بیان میکنم:)))
@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

@info
سلامت باشی عزیز جان، همون دکمه تشکر رو بزنی خودش تشکر هستش.
موفق باشی


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش آپدیت شد
0

سلام مجدد به میلاد عزیز
میلاد جان من میخوام یه شرطی رو تعریف کنم اگه این متغیر ابتدایه دو عددش صفر بود بیا این کار رو انجام بده،این قسمت ابتدایه دو عددش رو چظوری تعریف کنم؟
متدی هست؟
@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

سلامت باشی
ببین این توابعی که معرفی کردم برای همین منظور بودند دیگه، عددی که میگی، در واقع بصورت یک رشته از عددها هستش. یعنی بیای و به کمک این توابع دو رقم اول عدد رو از رشته جدایی کنی و سپس با رشته ی "00" مقایسه کنی.

تابع دوم و سومی که گفتم رو بررسی کن.


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

میلاد جان سلام ممنونم ازت مشکل حل شد فقط متدی پیدا نمی کنم که 00 رو اضافه کنه می تونی کمک کنی؟
ممنون
کدهامو تو همون لینک مجددا بارگذاری کردم اگر امکانش هست یک نگاهی بنداز:)
https://jsfiddle.net/L8vfb9ar
@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

سلامت باشی، خدارو شکر

00 رو بهش اضافه کنی؟ تابع خاصی نمیخوادش، با خود عملگر + میتونی انجامش بدی.

let x = '12345';
let y = '00' + x;
console.log(y); // "0012345"

amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

حالا یه سوال دارم خروجی این رو چطوری برگردونم؟یکم گیج شدم

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;
    }
});

@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

الان اومدی گفتی که وقتی روی دکمه کلیک شدش، ی مواردی رو بررسی کنه و در صورت لزوم تغییراتی رو بوجود بیاره.
دیگه بستگی داره که هدف نهایی تو چی باشه که بخوای به نتیجه برسونیش.

تابع addEventListener خروجی undefined رو بر می گردونه.
ببین دنبال چی هستی و چه مقداری رو می خوای در نهایت نگه داری و استفاده کنی، بیرون تابع براش یک یا چند متغیر عمومی تعریف کن، داخل تابع پس از فعل و انفعالات لازم مقداردهی کن اون رو. اینجوری می تونی ازش استفاده کنی.


amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

الان میخام پاسخ در شرط ها رو برگدونه،الان چیکار کنم؟اصلا گیج شدم
@milad


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

مثلا متغیرها رو بیرون تابع تعریف کن.
بعدا هر جایی لازم بود بهشون دسترسی داری.

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;
    }
});

amin78_tech
تخصص : ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ
@amin78tech 5 سال پیش مطرح شد
0

میلاد جان سلام ببخشید مزاحم شدم ولی متاسفانه ارور 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


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
1

برای اینکه اومدی داخل شرط ها، دوباره متغیر رو از نو تعریف کردی.
به کد من دقت کن، من let هارو از داخل if else حذف کردم. توام باید حذف کنی.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام