我一直在尝试使用带有 jsf 构建的表单的 jQuery 验证插件进行客户端验证。出于显而易见的原因,我基本上需要客户端验证来帮助减少服务器和浏览器之间的请求/响应往返次数。我知道 jsf“h:commandlink”标签不像普通的提交按钮,就像“h:commandButton”一样,我已经使用下面的代码成功地使用了 JQuery 表单验证:
<script type = "text/javascript">
$(document).ready(function(){
$("#form").validate({
rules: {
"form:staffno": {
required: true
}
}
});
});
</script>
<h:body>
<h:form id="form">
<h:inputText id="staffno" value="#" required="true"/>
<h:commandButton id="save" value="SAVE" action="#"/> //renders a html submit button type
</h:form>
</body>
我从页面源代码中注意到 h:commandLink 使用了某种 javascript 函数,所以我尝试调整上面的内容以获得相同的效果,如下所示:
<script type="text/javascript">
$(document).ready(function(){
$("#form").validate({
rules: {
"form:staffno": {
required: true
}
}
});
$("#form\\:save").click(function(){
if($("#form").valid()){
//cannot use regular $("#form").submitt()
// really can't figure what to use here
}
else{
return false;
}
});
});
</script>
在我的调整狂潮中,我能够获得 JQuery 验证插件的行为,但只是一小会儿,因为即使该字段为空,表单仍会被提交。我有点想知道调用了两个 onclick,一个在 jquery 中,另一个在 jsf 中。我仍然不知道如何正确处理。我需要帮助才能使此客户端验证与 JQuery 和 jsf h:commandLink 一起正常工作。谢谢