grails submitButton的验证

grails submitButton的验证,grails,button,spring-webflow-2,Grails,Button,Spring Webflow 2,可以使用javascript在grails的onCLick属性上实现验证吗?我使用webflow从一个页面转到另一个页面。以下是“下一步”按钮的代码: <g:submitButton class="btn btn-primary" name="next" value="Next" onclick="return isfilipinoCitizen()"></g:submitButton> iSpilipinoCitizen函数可在我的javascript代码中

可以使用javascript在grails的onCLick属性上实现验证吗?我使用webflow从一个页面转到另一个页面。以下是“下一步”按钮的代码:

 <g:submitButton class="btn btn-primary" name="next" value="Next" onclick="return isfilipinoCitizen()"></g:submitButton>  

iSpilipinoCitizen函数可在我的javascript代码中找到:

                <script type="text/Javascript">                      
                function isfilipinoCitizen() {    
                  var selected = "${accountInfo?.filipinoCitizen}";
                      if(selected == "1"){
                          return true;
                      }else{
                          alert(selected)
                          alert("You must be a Filipino citizen to register!")
                          document.location.href = "myhomepage";
                      }
                }
                </script>

函数为菲律宾公民(){
var selected=“${accountInfo?.philipinocidentity}”;
如果(所选==“1”){
返回true;
}否则{
警报(选定)
提醒(“您必须是菲律宾公民才能注册!”)
document.location.href=“myhomepage”;
}
}
我想在这里做的是,如果用户的输入为0,防止页面进入下一页,并将用户重定向到系统的主页。但它似乎根本不起作用

非常感谢你们的帮助


谢谢

尝试提交
onsubmit

<g:submitButton class="btn btn-primary" name="next" value="Next" onsubmit="return isfilipinoCitizen()"></g:submitButton>  


在您的函数return
true
false

中,首先,我认为您应该使用来检查实际呈现为html的内容。它还有助于发现一些javascript错误或无法加载资源

其次,您应该首先检查javascript是否被调用,方法是放置一个
警报('come here')就在isfilipinoCitizen()的开头。之后,将在第一种情况下发出警报。Javascript是一种特殊的语言,我们在处理它时必须小心:):


函数为菲律宾公民(){
警惕(“过来”);
var selected=“${accountInfo?.philipinocidentity}”;
如果(所选==“1”){
警惕(“过来”);
返回true;
}否则{
警报(选定)
提醒(“您必须是菲律宾公民才能注册!”)
document.location.href=“myhomepage”;
}
}
最后(在您保证javascript函数得到正确调用之后),您必须做的不仅仅是“document.location.href”来阻止表单提交。为了快速见效,我推荐和。如果您喜欢纯javascript解决方案,可以遵循Galm和Anuj提出的解决方案:将onsubmit放入标记中:

<g:form name="myForm" action="myaction" onsubmit="return isfilipinoCitizen()">...</g:form>
。。。
如果失败,请记住返回false:)

p/s:直接向javascript插入
${accountInfo?.filipinicitizen}
可能会奏效,但这不是最佳做法。将“isFilipinoCitizen”作为参数传递给javascript函数更好


另一个可用性想法:如果你已经知道哪个用户有权注册,为什么我们必须等到用户填写完所有表格,告诉他们必须是菲律宾公民才能注册?为什么在加载页面之前(加载页面之后)没有通知用户?

这个问题实际上不是关于grails groovy或spring的,而是关于js表单验证的。可能是重复的,非常感谢!但是在实现了您的建议之后,仍然没有发生任何事情,即使没有通过验证,它仍然会进入下一页submitButtom@AnujArora这是正确的。您可能有多个submit按钮,并且不希望忘记其中一个按钮上的
onsubmit
属性。
<g:form name="myForm" action="myaction" onsubmit="return isfilipinoCitizen()">...</g:form>