2017-02-11 4 views
1

ここで数値タイプを使用していますので、数字だけを受け入れるようにしています。しかし、この数字タイプは、フィールドの右側に増分および減分セレクタを付けるようなものではありません。私は必要なのは数字だけを受け入れる必要があるということです。どうすればいいですか?は、入力フィールドの数字だけを受け入れる必要があります

これらは私のフォーム要素です:

<label className="w3-label w3-text-blue w3-large"> 
       Phone Number: 
       <input type="number" className="w3-input w3-border" value={this.state.phoneno} 
       onChange={e => this.setState({ phoneno: e.target.value })} required placeholder="Enter Father's Phone No. in Numbers"/> 
       </label><br/> 
       <label className="w3-label w3-text-blue w3-large"> 
       Mobile Number: 
       <input type="number" className="w3-input w3-border" value={this.state.mobileno} pattern="[0-9]{10}" title="Please enter 10 digit mobile Number" 
       onChange={e => this.setState({ mobileno: e.target.value })} required placeholder="Enter Father's Mobile No. in Numbers"/> 
       </label></div><br/> 

答えて

0

あなたが与えられた番号が有効であるかどうかをチェックするためにJavaScriptでregular expressionsを使用することができます。

function phonenumber(inputtxt) 
{ 
    var phoneno = /^\d{10}$/; 
    if((inputtxt.value.match(phoneno)) 
     { 
     return true; 
     } 
     else 
     { 
     alert("message"); 
     return false; 
     } 
} 
0

を試してみてください。 <input>type="text"を使用して、onChangeハンドラを実行させてください。 String.replace\D(数字ではありません)正規表現を使用して不要な文字を除外し、次にString.substrを使用して入力値の長さを制御することをお勧めします。次のようなもの:

const filterNonDigits = value => value ? value.replace(/\D+/, '') : ''; 
const takeLast = (amount, value) => value ? value.substr(0, amount) : ''; 

class NumbersInput extends React.Component { 
    constructor() { 
    super(); 
    this.state = {}; 
    } 

    handlePhone(value) { 
    this.setState({ phoneno: filterNonDigits(value) }); 
    } 

    handleMobile(value) { 
    this.setState({ mobileno: takeLast(10, filterNonDigits(value)) }); 
    } 

    render() { 
    return (
     <div> 
     <label> 
      Phone Number: 
      <input 
      value={this.state.phoneno} 
      onChange={e => this.handlePhone(e.target.value)} 
      /> 
     </label> 
     <br/> 
     <label> 
      Mobile Number: 
      <input 
      value={this.state.mobileno} 
      onChange={e => this.handleMobile(e.target.value)} 
      /> 
     </label> 
     </div> 
    ); 
    } 
} 
関連する問題