需要将jQueryvalidation插件与jsf集成

我一直在尝试使用带有jsf构建的表单的jQueryvalidation插件进行客户端validation。我需要客户端validation,这有助于减少服务器和浏览器之间的请求/响应往返次数,原因很明显。 我知道jsf“h:commandlink”标签不像常规提交按钮,就像“h:commandButton”,我已经成功地使用下面的代码进行JQuery表单validation:

 $(document).ready(function(){ $("#form").validate({ rules: { "form:staffno": { required: true } } }); });      //renders a html submit button type   

我从页面源代码中注意到h:commandLink使用某种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; } }); });  

在我的调整狂欢中,我能够获得JQueryvalidation插件行为,但只是暂时,因为表单仍然被提交,即使该字段为空。 我有点想象两个onclicks被调用,一个在jquery中,另一个在jsf中。我仍然无法想象如何使它正确。 我需要帮助才能使用JQuery和jsf h:commandLink正确地运行此客户端validation。 谢谢

如果表单有效,则返回true 。 您甚至可以直接委托给valid()函数。

 $("#form\\:save").click(function(){ return $("#form").valid(); }); 

你确实不能使用$("#form").submit() ,因为这样,命令按钮的HTML 表示的name = value对将不会作为请求参数发送因此JSF将无法识别需要调用的命令按钮操作。

         

我在.xhtml文件中使用它时脚本无法正常工作……………………………….. ……………………………………如果标签具有“类型”属性,它应该等于“text / javascript”或“application / javascript”。 脚本也必须是可解析的(语法正确)。