form.on('submit(*)', function(data) { data = data.field; // 数据校验 if(!isIntNumer(data.canhuirenshu)){ layer.msg('参会人数应输入整数', { time: 2000, icon: 5 }); return false } // 跨表计算判断 // 比较大小 //更新跨表属性 var crossuserid; var crossrefid; var crossoptnum; if(http.getParam('corss')){ var statusColumnName = localStorage.getItem('statusColumnName'); var statusColumnValue = localStorage.getItem('statusColumnValue'); if(statusColumnName!='') { var obj = JSON.parse(localStorage.getItem('crossObj')); if(!statusColumnName.startsWith("[")) { for (var o in obj){ if(o==statusColumnName){ obj[o] = statusColumnValue; } } var table = localStorage.getItem('crossTable'); http.requestJson(`${table}/update`,'post',obj,(res)=>{}); } else { crossuserid=Number(localStorage.getItem('userid')); crossrefid=obj['id']; crossoptnum=localStorage.getItem('statusColumnName'); crossoptnum=crossoptnum.replace(/\[/,"").replace(/\]/,""); } } } if(crossrefid && crossuserid) { data.crossuserid=crossuserid; data.crossrefid=crossrefid; http.request('huiyishiyuyue/list', 'get', { page: 1, limit: 10, crossuserid:crossuserid, crossrefid:crossrefid, }, function(res) { if(res.data.total>=crossoptnum) { layer.msg(localStorage.getItem('tips'), { time: 2000, icon: 6 }) return false; } else { // 跨表计算 // 提交数据 http.requestJson('huiyishiyuyue' + '/add', 'post', data, function(res) { layer.msg('提交成功', { time: 2000, icon: 6 }, function() { back(); }); }); } }); } else { // 跨表计算 // 提交数据 http.requestJson('huiyishiyuyue' + '/add', 'post', data, function(res) { layer.msg('提交成功', { time: 2000, icon: 6 }, function() { back(); }); }); } return false
时间: 2024-01-10 15:02:19 浏览: 24
这段代码是一个表单提交的事件回调函数。首先获取表单数据,然后对参会人数进行整数校验,如果不是整数则弹出提示框并返回 false,阻止表单提交。接着,判断是否需要进行跨表计算,如果需要则获取跨表属性的信息,并根据条件查询数据库进行比较。如果查询结果超过条件限制,则弹出提示框并返回 false,阻止表单提交。否则,进行跨表计算并提交表单数据,并弹出提示框提示提交成功,并调用 back 函数进行页面跳转。如果不需要进行跨表计算,则直接提交表单数据,并弹出提示框提示提交成功,并调用 back 函数进行页面跳转。最后,返回 false 阻止表单提交。
相关问题
form.on('submit(*)', function(data) { data = data.field; // 数据校验 if(!isIntNumer(data.canhuirenshu)){ layer.msg('参会人数应输入整数', { time: 2000, icon: 5 }); return false }
这段代码中,form.on('submit(*)', function(data) { ... }是用于监听表单提交事件的,其中的*是指表单的lay-filter属性值,可以根据需要进行修改。当表单提交时,执行函数体内的代码逻辑。
代码中首先通过data.field获取表单提交的数据,然后进行数据校验,确保参会人数为整数。如果参会人数不是整数,就会弹出提示框,并返回false,阻止表单提交。
form.on('submit(pattern-add-form-submit)', function (data) { console.log("data:" + data.field) if (data.field.title === '') { febs.alert.warn("标题不能为空q"); } else if (data.field.price === null) { febs.alert.warn("价格不能为空") } else { febs.post(ctx + 'pattern/add', data.field, function () { layer.closeAll(); febs.alert.success('新增成功'); $('#febs-pattern').find('#query').click(); }); } return false; });我想校验非空字段,第一次标题为空提交正常提示,然后标题输入值后点击提交没反应
根据您提供的代码,可能是因为您的表单提交是通过 Ajax 来实现的,而在第一次提交时,您已经通过 `return false` 阻止了默认的表单提交行为,从而导致了表单的重置。因此,后续的提交并没有触发表单的提交事件。
为了解决这个问题,您可以在表单验证通过后,手动触发表单的提交事件,而不是使用 `return false` 来阻止默认行为。修改后的代码如下:
```javascript
form.on('submit(pattern-add-form-submit)', function (data) {
console.log("data:" + data.field);
if (data.field.title === '') {
febs.alert.warn("标题不能为空q");
} else if (data.field.price === null) {
febs.alert.warn("价格不能为空");
} else {
febs.post(ctx + 'pattern/add', data.field, function () {
// 清除表单数据
form[0].reset();
layer.closeAll();
febs.alert.success('新增成功');
$('#febs-pattern').find('#query').click();
});
// 手动触发表单提交事件
form.trigger('submit');
}
// 返回 false 防止事件冒泡
return false;
});
```
这样,当表单验证通过后,会先提交表单数据,然后手动触发表单的提交事件,最终实现表单的提交。
另外,如果您使用的是 layui 框架,也可以使用 `form.render()` 方法来重新渲染表单。例如:
```javascript
form.render();
```
这样可以重新渲染表单,从而避免表单重置。