更多
2018年04月26日 23点18分 叶飞 金童玉女

“一起帮”的“求助编辑”页面,需要在前台验证:悬赏的帮帮币必须为大于零的正整数。这个验证需要计算:之前已经设置的悬赏+此次调整金额,所以我用了JQuery.Valdition的自定义验证功能。

但我发现非常诡异的是:

填写调整金额时(可以不填写),前端验证就无法生效;但只要填写了调整金额,哪怕是空格或零,都可以正常验证。

我怀疑是 this.optional(element)的问题,因为在调试时发现如果不填“调整金额”,它的值是dependency-mismatch?跟了一下源代码,太累……


求前端大鸟指点一二!


html代码:

<input class="input-validation-error form-control" data-rule-creditenough="[zyf-current-money]" data-rule-rewardpostive="[zyf-problem-has-reward]" data-val="true" data-val-number="字段 增减帮帮币 必须是一个数字。" data-val-regex="* 增减帮帮币只能为正整数" data-val-regex-pattern="^[1-9][0-9]*$" id="RewardChanged" name="RewardChanged" placeholder="大于0的正整数" type="text" value="">
JavaScript代码:

            $.validator.addMethod("rewardPostive", function (value, element, param) {
                var oldReward = parseInt($(param).text()),
                    rewardChanged = 0;                
                if ($.trim(value) != "") {
                    rewardChanged = parseInt(value);
                }
                var currentReward = $("[zyf-problem-credit-change]").val() === "-" ?
                    oldReward - rewardChanged :
                    oldReward + rewardChanged;
                return this.optional(element) ||
                    currentReward > 0;
            }, "* 悬赏的帮帮币数量只能为正整数");
调试:



Console:




修改

验证 jquery Javascript 编程开发语言 修改

应答

知道“一起帮”的协助流程么?不要搞错哟:应答握手再远程……

2018年04月26日 23点52分 修改
确认查看

因为每次总结被查看,总结的作者都会获得 帮帮点 奖励。

所以,只有注册用户才能查看总结。

否则,该功能无法成功实现(以杜绝作弊)。敬请谅解!

查看: 3 赞: 0 踩: 0 叶飞 金童玉女
关键字



反馈