【问题标题】:JQuery - How can I carry on with script after call to modal dialogJQuery - 调用模态对话框后如何继续使用脚本
【发布时间】:2016-04-19 10:08:38
【问题描述】:

我有一个脚本,它调用模态对话来从用户那里获取一些值。 如果是使用提示用户输入单个值并将控制权传递回脚本。

但是,如果我打开一个对话框,它不会将控制权返回给脚本中的下一个命令。

谁能告诉我哪里出错了?

此代码有效(注意 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 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
            });
        }
    }

这会显示弹出窗口,但关闭时不会继续。

  $('#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
            });
        }
    }

提前致谢。

罗恩

【问题讨论】:

    标签: c# jquery model-view-controller dialog


    【解决方案1】:

    当您调用打开对话框时,它不会等待从用户那里获取价值,而是继续运行下一个命令。所以你必须等待关闭对话框并完成其余的代码。 尝试使用引导对话框 (https://nakupanda.github.io/bootstrap3-dialog/) 在回调中你可以做剩下的。

    希望对你有用。

    【讨论】:

    • 谢谢回复,我去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多