راکت

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

27 پاسخ

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

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

ثبت پرسش جدید

پاسخ‌ها

27
میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

شاید پاسخ شما همین‌جا باشد

مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

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

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

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

document.querySelector()
amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

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

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

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

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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

amin78_tech
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

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
amin78_tech
@amin78tech

تخصص: ᴡᴇʙ ᴇɴɢɪɴᴇᴇʀɪɴɢ

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

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

صفحه 1 از 2

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

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