راکت

چطور میشه در textfield فقط اجازه وارد کردن عدد داد

7 پاسخ

سلام رفقا..اخر هفته همگی خوش

اقا من یه پروژ react دارم که از material ui استفاده میشه و بچه های تحلیل گیر دادن که حتما text fied عدد وارد بشه و کاربر جز عدد نتونه چیزی وارد کنه ..
اگر کسی ایده یا نظری داره دراین مورد خوشحال میشم که با من به اشتراک بزاره

ثبت پرسش جدید

پاسخ‌ها

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

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

اینجوری:

<input type="text" onkeypress="return /[0-9]/i.test(event.key)">
آرش رضائی
آرش رضائی
@arash0soft

یک راه تغییر. Type به نامبر بود که تو ری اکت نمیشه
<input type='number' />
راه حل اینجوری :

<input value={this.state.Goal} onChange={event => this.setState({Goal: event.target.value.replace(/\D/,'')})}/>

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

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

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

ورودی متنی رو بالا نوشتم، در صورتی که نوع ورودی رو بشه عددی گذاشت:

<input type="number" id="quantity" name="quantity">
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

تایپ کردن داخل فیل های Input یک Event یا رویداد در جاوااسکریپت حساب میشه.
میتونی اون رویداد رو مدیریت کنی

داخل React هم کم و بیش همینه..
میشه از رویداد onChange استفاده کرد


class App extends React.Component{
   constructor(){
  super();
  this.state = {value: ''};
  this.onChange = this.onChange.bind(this)
   }

   onChange(e){
  const re = /^[0-9\b]+$/;
  if (e.target.value === '' || re.test(e.target.value)) {
     this.setState({value: e.target.value})
  }
   }

   render(){
 return <input value={this.state.value} onChange={this.onChange}/>
   }
}

ReactDOM.render(<App/>,document.getElementById('app'))

توی متد onChange میتونی با regular expression اعداد فارسی و غیره هم چک کنی.


مثال زیر هم استفاده از Hook هارو نشون میده:
https://codesandbox.io/s/adoring-minsky-9sqvv

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

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

@ali.bayat
ببخشید مهندس، من با ری اکت آشنایی ندارم، ولی می خواستم ببینم پاسخی که من نوشتم ایرادی درونش هست؟
میشه بررسی کنیدش؟
این پاسخ: https://roocket.ir/discuss/12370#subject-44068

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@milad
درود
خیر اتفاقا راه درستی هست.

ری اکت هم همینه، فقط کاستوم اونت های خودش رو هم داره
و ترجیحا هم لاجیک رو میذارن داخل یه تابع و اون رو به Instance بایندش میکنند

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

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

@ali.bayat
ممنون از توجه تون مهندس بیات 👌

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

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