用戶在表單上輸入一些數字和其他數據後,計算總計。用戶也可以選擇輸入折扣金額。我使用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. 如何在mvc 4控制器中顯示警報消息?
- 2. 如何在控制器中顯示驗證消息Laravel?
- 3. 如何在MVC中顯示來自控制器的jquery消息
- 4. 如何在控制器中顯示警報消息
- 5. 如何在asp.net核心mvc控制器中顯示警報消息框?
- 6. 控制在WPF中顯示消息
- 7. 如何在javascript中顯示消息框
- 8. 如何在消息框中顯示此消息?
- 9. 如何在SimVision控制檯中顯示$ display消息
- 10. 如何顯示「消息盒子」使用MVC3控制器
- 11. 如何顯示消息框在MVVM
- 12. 如何在MVC控制器中使用消息框?
- 13. 在控制器中顯示消息的最佳方式
- 14. 從Windows服務器在控制檯中顯示消息
- 15. Magento - 在管理控制器中顯示覆蓋成功消息
- 16. 如何在C#asp.net窗體中顯示/顯示消息框?
- 17. 如何在c計時器中顯示消息框
- 18. 如何在瀏覽器中顯示消息框(
- 19. 顯示消息框
- 20. 顯示在控制的模式彈出擴展消息框
- 21. 顯示消息框在JavaScript
- 22. 如何在Laravel中的控制器重定向時顯示成功消息?
- 23. Symfony2:如何顯示在子控制器中生成的Flash消息
- 24. 如何顯示來自控制器的消息以在magento中查看?
- 25. 如何在控制檯上顯示日誌消息?
- 26. 控制檯消息不顯示
- 27. 春天在控制器的toastr顯示消息
- 28. 剃鬚刀 - 如何顯示消息框?
- 29. 如何顯示組合框消息
- 30. 如何在消息框中顯示文本框objective-c
現在我的控制器使用'render'在文本字段中渲染總數,然後通過AJAX將其作爲HTML發回。如何渲染總數並在同一個AJAX調用中渲染消息? – ubiquibacon
你需要返回一組不同的數據。例如,某些包含數據的JSON以及顯示消息框的內容。使用JavaScript更新文本字段,而不是發送整個HTML。 – Gregg