用户在表单上输入一些数字和其他数据后,计算总计。用户也可以选择输入折扣金额。我使用jQuery AJAX方法将所有数据发送到Load
控制器中的getTotal
方法。如果用户输入的折扣金额大于计算的总额,我希望弹出一个消息框(类似于一个JavaScript alert
框),表示折扣必须小于总额。有没有干净的方式从控制器做到这一点?如何在控制器中显示消息框?
1
A
回答
1
这是我做的。在我看来,我在我的一个JavaScript方法中有下面的代码。我使用jQuery的getJSON
而不是ajax
,因为它似乎更适合(更清洁)。
$.getJSON(
"/truckingmanagement/load/getTotal",
{cargoSource:cargoSource, cargo:cargo, haulRate:haulRate, tonnage:tonnage, mileage:mileage, discount:discount, taxExempt:taxExempt},
function(result) {
if(result.message != null){
alert(result.message);
$("#discount").val("");
$("#totalCell").html(result.total);
}
else{
$("#totalCell").html(result.total);
}
});
我我的控制器我还是用我的瓶盖内的render
方法,但修改它JSON,确保import grails.converters.*
。
render(contentType:"text/json") {
total = g.textField(name: 'total', value: totalBill, readonly: 'readonly')
message = errorMessage
}
的totalBill
值已经在调用render
计算,errorMessage
仅仅是包含基于什么样的错误是消息(否定的折扣值优惠价值超过总更高版本)或者没有消息在所有的字符串。因此,如果消息是null
,则不会显示消息。
1
不可以。您希望将结果发送回您的ajax响应中,告诉客户端显示消息框。那么你可能会使用JavaScript来显示它。有很多用于显示消息框的jQuery插件。例如:jQueryUI's Dialog。
0
我认为在技术上可以让你的控制器生成javasacript作为对ajax调用的响应,但这样做会非常难看。
更好的是发送JSON。例如:
result = []
result.success = total >= discount
result.total = total
render result as JSON
而在Ajax调用中,检查成功,显示成功时总数,如果不成功则显示消息。
相关问题
- 1. 角度控制器不显示消息
- 2. 如何在SimVision控制台中显示$ display消息
- 3. 如何显示“消息盒子”使用MVC3控制器
- 4. 如何显示消息框在MVVM
- 5. 如何在MVC控制器中使用消息框?
- 6. Magento - 在管理控制器中显示覆盖成功消息
- 7. 如何在c计时器中显示消息框
- 8. 如何在浏览器中显示消息框(
- 9. Symfony2:如何显示在子控制器中生成的Flash消息
- 10. 如何在Laravel中的控制器重定向时显示成功消息?
- 11. 如何在控制台上显示日志消息?
- 12. 控制台消息不显示
- 13. 春天在控制器的toastr显示消息
- 14. 显示Django消息框架消息
- 15. Django消息框架不显示消息?
- 16. 在asp.net问题中显示消息框
- 17. 在框中显示消息.htaccess
- 18. 在Caliburn Bootstrapper中显示消息框Configure()
- 19. 控制台应用程序显示错误消息框
- 20. 模拟器没有显示消息框
- 21. 如何控制msn消息的“个人消息”通过python显示给他人?
- 22. 在列表框中显示消息框中的多个信息
- 23. 消息框没有显示
- 24. extjs消息框显示
- 25. Rails 5,如何控制显示的错误消息
- 26. 如何在Visual C#中的消息框中显示整数?
- 27. 如何在类库中的类中显示消息框?
- 28. 如何在QT中的消息框中显示图标?
- 29. 如何在secondActivity中显示Toast消息?
- 30. 如何在logcat中显示长消息
现在我的控制器使用'render'在文本字段中渲染总数,然后通过AJAX将其作为HTML发回。如何渲染总数并在同一个AJAX调用中渲染消息? – ubiquibacon
你需要返回一组不同的数据。例如,某些包含数据的JSON以及显示消息框的内容。使用JavaScript更新文本字段,而不是发送整个HTML。 – Gregg