我有以下g:submitButton
:
<g:submitButton name="next" class="signup-button skyblue-btn pull-right pl-pr-36" value="${message(code:"buttons.ok")}" onclick="return showSpinnerSignUp()"/>
我在JS文件中定义showSpinnerSignUp()
:
$(function() {
function showSpinnerSignUp(){
$('.spinner-ctn').show();
return true;
}
});
不显示微调器(onclick
无效)。
答案 0 :(得分:0)
这是浏览器中表单提交的默认行为。您在点击按钮时注册了showSpinnerSignUp()
方法,而点击同一按钮则负责提交附上表格。
由于浏览器提交表单的内置行为通过向服务器进行完整往返来实现,因此会立即中断您onclick
事件的代码执行,因为您的浏览器正在导航离开当前页面
这可以模拟,就像您单击了按钮并立即刷新页面一样。将当前设置部署到生产服务器时,您当前的设置可能会有效,但本地设置此设置的可能性很低,因为本地开发服务器过去常常在更快的机器上运行,因此表单提交的页面刷新时间要快得多。
要验证这种情况,请打开浏览器的控制台并直接调用方法showSpinnerSignUp()
(请记得暂时将其从$(function() {})
删除)并查看微调器是否显示。
此外,Preserve Logs
还有一个选项可以在页面刷新后保留Javascript控制台日志。因此,在方法调用中放入一个简单的console.log()
,然后尝试按下该按钮。您将看到您的方法被调用,但由于表单提交而未显示任何微调器。