2016-04-19 11 views
0

モーダルダイアログを呼び出してユーザーから値を取得するスクリプトがあります。 ユーザが単一の値を入力し、制御がスクリプトに戻される場合は、プロンプトが表示されます。JQuery - モーダルダイアログの呼び出し後にスクリプトを実行するにはどうすればいいですか

しかし、私がダイアログを開くと、スクリプトの次のコマンドに制御が返されません。

誰かが私が間違っている場所を見せてもらえますか?

このコードは、これは、ポップアップを示すが、近くには続行されません

$('#scancodebox').change(function() { 
     var barcode = ''; 
     if (this.value.length > 0) { 
      barcode = this.value; 
      var scancountry = barcode.substring(0, 2); 
      var scanherd = barcode.substring(2, 8); 
      var scananimal = barcode.substring(8, 14); 
      var scandate = barcode.substring(14, 22); 
      var scandobday = barcode.substring(14, 16); 
      var scandobmonth = barcode.substring(16, 18); 
      var scandobyear = barcode.substring(18, 22); 
      var scansex = barcode.substring(22, 23); 
      var scanbreed = barcode.substring(23); 
      var getWeight = prompt("Enter Weight");    

      var scandob = scandobyear + "/" + scandobmonth + "/" + scandobday 
      //**************************************************************** 
      // Calculate Days 
      //**************************************************************** 
      var utcToday = new Date(); 
      var utcDob = new Date(scandobyear, scandobmonth, scandobday); 
      var _MS_PER_DAY = 1000 * 60 * 60 * 24; 
      var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds 
      var daysold = Math.round(Math.abs((utcDob.getTime() - utcToday.getTime())/(oneDay))); 
      var scanmoveon = utcToday.getFullYear() + "/" + utcToday.getMonth() + "/" + utcToday.getDate() 
      //**************************************************************** 

      //var scanCountry = substring(barcode, 1, 2); 
      //alert(scanCountry); 
      //this.value = ''; 

      var grid = $("#grdSPL").data("kendoGrid"); 
      grid.dataSource.add({ 
       Country: scancountry, 
       HerdNumberId: scanherd, 
       DOB: scandob, 
       MoveOn: scanmoveon, 
       AnimalId: scananimal, 
       BreedId: scanbreed, 
       Weight: getWeight, 
       NotifyCTS: 1, 
       Age: daysold, 
       Grade: 2, 
       DayTag: Math.floor(Math.random() * 250) + 1, 
       Sex: scansex 
      }); 
     } 
    } 

(ノートを促すための呼び出しgetWeight)動作します。

$('#scancodebox').change(function() { 
     var barcode = ''; 
     if (this.value.length > 0) { 
      barcode = this.value; 
      var scancountry = barcode.substring(0, 2); 
      var scanherd = barcode.substring(2, 8); 
      var scananimal = barcode.substring(8, 14); 
      var scandate = barcode.substring(14, 22); 
      var scandobday = barcode.substring(14, 16); 
      var scandobmonth = barcode.substring(16, 18); 
      var scandobyear = barcode.substring(18, 22); 
      var scansex = barcode.substring(22, 23); 
      var scanbreed = barcode.substring(23); 
      //var getWeight = prompt("Enter Weight"); 
      var retval = $("#dialog-modal").dialog("open"); 

      var scandob = scandobyear + "/" + scandobmonth + "/" + scandobday 
      //**************************************************************** 
      // Calculate Days 
      //**************************************************************** 
      var utcToday = new Date(); 
      var utcDob = new Date(scandobyear, scandobmonth, scandobday); 
      var _MS_PER_DAY = 1000 * 60 * 60 * 24; 
      var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds 
      var daysold = Math.round(Math.abs((utcDob.getTime() - utcToday.getTime())/(oneDay))); 
      var scanmoveon = utcToday.getFullYear() + "/" + utcToday.getMonth() + "/" + utcToday.getDate() 
      //**************************************************************** 

      //var scanCountry = substring(barcode, 1, 2); 
      //alert(scanCountry); 
      //this.value = ''; 

      var grid = $("#grdSPL").data("kendoGrid"); 
      grid.dataSource.add({ 
       Country: scancountry, 
       HerdNumberId: scanherd, 
       DOB: scandob, 
       MoveOn: scanmoveon, 
       AnimalId: scananimal, 
       BreedId: scanbreed, 
       Weight: getWeight, 
       NotifyCTS: 1, 
       Age: daysold, 
       Grade: 2, 
       DayTag: Math.floor(Math.random() * 250) + 1, 
       Sex: scansex 
      }); 
     } 
    } 

ありがとうございます。

ロン

答えて

0

あなたが開いているダイアログを呼び出すときに、ユーザーから値を取得するために待機していないと、次のコマンドを実行し続けています。ダイアログを閉じて残りのコードを実行するまで待つ必要があります。 Bootstrap Dialog(https://nakupanda.github.io/bootstrap3-dialog/) を使用してください。コールバックでは残りの作業を行うことができます。

私はそれがあなたに役立つことを願っています。

+0

返信いただきありがとうございます、私は見てみましょう – Ron