2017-08-26 4 views
-2

こんにちは皆私は助けが必要です。私はユーザーが製品の詳細をフォームに入力して提出する製品入力Webサイトを作成しています。フォームを送信している間にユーザーに質問する複数のユーザー入力のプロンプト

フォームを処理している間、私は実行を一時停止し、各製品の在庫を入力するためのポップアップをユーザーに与えます。ユーザーが製品の在庫を入力すると、フォームが正常に送信されます。私はプロンプトを使用しようとしましたが、プロンプトは1人のユーザー入力しか取ることができません。 注:実行中に複数のユーザー入力が一時停止します。

constructor() { 
super(); 
this.state={ 
    products:[], 
    productName:'', 
    category:'', 
    subCategory:'', 
    hsnCode:'', 
    mrp:0, 
    tax:0, 
    purchasePrice:0, 
    status:1, 
    createdAt: new Date(), 
     } 
} 

handleSubmit(e){ 
     event.preventDefault(); 
     this.state.products.map(
    (product)=>{ 
     if (product.pid=="S") { 
      let stock= prompt("enter your stock"); 
      let uom= prompt("enter your uom"); 
      console.log(stock); 
      console.log(uom); 
     } 
    ); 

} 

リアルタイム編集:新しいコードで再度質問を更新しました。私は、ユーザーがすでに入力した製品を選択して請求書を作成する請求ソフトウェアを作成しています。場合によっては、商品マスタで商品が利用できない場合に、ユーザが請求パネルに新商品を入力することがあります。

私はこれらの製品を製品マスタに入力していますが、問題はユーザーが名前、税金、価格、数量のみを入力することです。私はまた、在庫とその製品のユニットが欲しい。プロンプトを表示したいが、プロンプトは1人のユーザー入力に対してのみ有効で、少なくとも2つの入力が必要です。

編集者注:私はここで前提をしていますが、問題は次のようなものです。「フォームを送信する前に複数の変数が必要です。これを達成するためのオプションはありますか? ? "

+0

あなたの問題はあまり明確ではありません。特定の商品を検索してその商品が1つ以上ある場合、その商品の量を指定するようにポップアップが表示されます。 – Jayce444

+0

ここでは反応部分はどこですか?あなたはpropmtを一切使用しないで、ポップアップコンポーネントとしてmaterial-uiライブラリコンポーネントを使用します。 – mindaJalaj

+0

私の質問が更新されました。ランキングをマイナスにしないで、私は実際にそれで非常に懸命に働いた –

答えて

0

あなたには2つの回答があり、いずれも「素晴らしい反応スキル」を表示していません。

1つのプロンプトで複数の値を入力し、入力を検証し、文字列を分割します。これは、プロンプトを使用する問題を回避するためのいくつかの形式です。 例:お使いのユーザーは/混乱やパニックを入力中の虚偽の情報につながる株式やUOMを、持っていないかもしれないよう

while(true){ 
    // noprotect 
    var i= prompt("Item not in database. Please enter your stock followed by uom, or cancel and check for typing errors. Two numbers, comma separated please.","0, 0"); 
    var a=i.split(','); 
    if(a.length==2 && Number.isInteger(Number.parseInt(a[0])) && Number.isInteger(Number.parseInt(a[1]))){ 
     let stock=a[0]; 
     let uom=a[1]; 
     break; 
    } 
} 

これは、最良の答えではないかもしれません。それはまたちょっと醜いですし、...まあ... // noprotect。その楽しいこと。混乱したユーザーは、取り消されることがないように、すぐに地獄に放置される可能性があります。

もっと良い答えは、別の方法で問題にアプローチし、フォーム提出を中断し、ユーザーを適切な場所にリンクしてその情報を入力することです。明確にするためには、これはおそらくこれが起こるときのための追加のフォームを作成することを意味します。

最後に、コードに構文エラーがある可能性があります(複数のプロンプトが表示されていて、コードが途切れている場合など)。

handleSubmit(e){//<--this is a lonely '{' 
     event.preventDefault(); 
     this.state.products.map(
    (product)=>{ 
     if (product.pid=="S") { 
      let stock= prompt("enter your stock"); 
      let uom= prompt("enter your uom"); 
      console.log(stock); 
      console.log(uom); 
     } 
    );//<--this is a lonely ')'. 

}//<--this is closing the brace opened at (product)=>{ , which probably means that ')' should be a '}'. 
関連する問題