阅读:5451 回复:12
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲

[表单]点取消一样会执行,,confirm没加return吗

楼主#
更多 发布于:2018-06-04 15:22
 if ($.MvcSheetUI.SheetInfo.ActivityCode == "Activity3") {
            if (this.Action == "Submit") {
                alert(this.Action)
                点取消一样会执行 //提交采购订单                
            }
        }

图片:R~KM91TYGL048C0[95)2OOH.png

果冻栋吖
104

帖子

755

跟帖

2629

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
  • 优秀斑竹
1楼#
发布于:2018-06-06 15:39
帖内置顶  –    –  2018-06-11 14:07
验证是在提交前进行的。
我觉得你的需求是用户点确认后才去执行你要执行的后台方法,否则你就不去修改后台数据。
那么你可以重写Submit方法的。


$.MvcSheet.Submit=function (actionControl, text, destActivity, postValue) {
            if ($.MvcSheetUI.SheetInfo.IsMobile) {
                var controls = $("#divSheet input[data-type='SheetTextBox']");
                controls.each(function () {
                    $(this).trigger("change");
                });
            }
            if (!$.MvcSheet.ActionValidata(actionControl)) return false;


            var that = this;
            $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + "【" + text + "】" + SheetLanguages.Current.Operation + "?", function () {
                //这里显示正在提交。。。。
                $.LoadingMask.Show(SheetLanguages.Current.Sumiting);
               //这里添加你要执行的代码。如果报错了 就不要执行下面的了!!!


                debugger;
                var SheetPostValue = that.GetMvcPostValue(that.Action_Submit, destActivity, postValue);
                that.PostSheet(
                    {
                        Command: that.Action_Submit,
                        MvcPostValue: JSON.stringify(SheetPostValue)
                    },
                    function (data) {
                        that.ResultHandler.apply(that, [actionControl, data]);
                    });
            })
        }



简单测试:

Submit: function (actionControl, text, destActivity, postValue) {
            if ($.MvcSheetUI.SheetInfo.IsMobile) {
                var controls = $("#divSheet input[data-type='SheetTextBox']");
                controls.each(function () {
                    $(this).trigger("change");
                });
            }
            if (!$.MvcSheet.ActionValidata(actionControl)) return false;


            var that = this;
            $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + "【" + text + "】" + SheetLanguages.Current.Operation + "?", function () { alert('确认了');
            })
        }
点击确认后 直接弹出对话框,不进行保存数据。道理一样的根据你的需求改就行了
需要技术支持请添加QQ1772829123,提供H3产品定制开发,IT技术支持。
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
2楼#
发布于:2018-06-04 16:47
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
3楼#
发布于:2018-06-04 17:03
首先我不知道你的这段代码是写在哪个方法里的。所以我无法给出解释,不过你可以看下面的代码
//前台验证事件
$.MvcSheet.Validate = function () {
 //这是你的代码
 if ($.MvcSheetUI.SheetInfo.ActivityCode == "Activity3") {
 if (this.Action == "Submit") {
 alert(this.Action)
 return false;    
 }
 }
return true;
}
发问题贴的时候,可以@一下我,我就能更快的知道了
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
4楼#
发布于:2018-06-04 17:57
照你这样写,连confirm都不提示了 直接return false了 但依然执行alert(this.Action)
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
5楼#
发布于:2018-06-05 08:15
bin蓝™:照你这样写,连confirm都不提示了 直接return false了 但依然执行alert(this.Action)回到原帖

你先好好看看我说了什么,哎,人心不古
发问题贴的时候,可以@一下我,我就能更快的知道了
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
6楼#
发布于:2018-06-05 08:55
岩竹玉雨:你先好好看看我说了什么,哎,人心不古回到原帖
我看了 但现在是先alert(this.Action)  然后执行我的方法,最后执行confirm
我要做的是 当我取消confirm 不要执行我的方法,,目前不行 取消一样执行alert(this.Action) 下面的方法
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
7楼#
发布于:2018-06-05 08:57
补充说下:加了return false;   我的方法执行了 但流程也不走下一步了
果冻栋吖
104

帖子

755

跟帖

2629

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
  • 优秀斑竹
8楼#
发布于:2018-06-06 15:39
验证是在提交前进行的。
我觉得你的需求是用户点确认后才去执行你要执行的后台方法,否则你就不去修改后台数据。
那么你可以重写Submit方法的。


$.MvcSheet.Submit=function (actionControl, text, destActivity, postValue) {
            if ($.MvcSheetUI.SheetInfo.IsMobile) {
                var controls = $("#divSheet input[data-type='SheetTextBox']");
                controls.each(function () {
                    $(this).trigger("change");
                });
            }
            if (!$.MvcSheet.ActionValidata(actionControl)) return false;


            var that = this;
            $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + "【" + text + "】" + SheetLanguages.Current.Operation + "?", function () {
                //这里显示正在提交。。。。
                $.LoadingMask.Show(SheetLanguages.Current.Sumiting);
               //这里添加你要执行的代码。如果报错了 就不要执行下面的了!!!


                debugger;
                var SheetPostValue = that.GetMvcPostValue(that.Action_Submit, destActivity, postValue);
                that.PostSheet(
                    {
                        Command: that.Action_Submit,
                        MvcPostValue: JSON.stringify(SheetPostValue)
                    },
                    function (data) {
                        that.ResultHandler.apply(that, [actionControl, data]);
                    });
            })
        }



简单测试:

Submit: function (actionControl, text, destActivity, postValue) {
            if ($.MvcSheetUI.SheetInfo.IsMobile) {
                var controls = $("#divSheet input[data-type='SheetTextBox']");
                controls.each(function () {
                    $(this).trigger("change");
                });
            }
            if (!$.MvcSheet.ActionValidata(actionControl)) return false;


            var that = this;
            $.MvcSheet.ConfirmAction(SheetLanguages.Current.ConfirmDo + "【" + text + "】" + SheetLanguages.Current.Operation + "?", function () { alert('确认了');
            })
        }
点击确认后 直接弹出对话框,不进行保存数据。道理一样的根据你的需求改就行了
需要技术支持请添加QQ1772829123,提供H3产品定制开发,IT技术支持。
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
9楼#
发布于:2018-06-06 17:01
果冻栋吖:验证是在提交前进行的。
我觉得你的需求是用户点确认后才去执行你要执行的后台方法,否则你就不去修改后台数据。
那么你可以重写Submit方法的。


$.MvcSheet.Submit=function (actionControl...
回到原帖
谢谢您的回答,比起某些人答非所问 强多了
上一页
1 2  »|
游客

返回顶部