作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用标准 HTML <form>
的搜索表单标记并发送 GET 请求,如下所示 search.jsf?country=x&city=y
.它们被设置为 View 范围 bean 中的 View 参数。
搜索表单包含两个级联下拉菜单,一个用于国家,一个用于城市。如何通过 <f:ajax>
更新城市下拉列表不变<form>
至<h:form>
从而破坏了 GET 功能?我必须使用 XMLHttpRequest
的“普通 Vanilla ”ajax ?我如何在 JSF 支持 bean 上使用它?
最佳答案
我会继续使用 <h:form>
并在提交按钮提交时向 JavaScript 寻求帮助以将其转换为 GET 表单。
就像是:
<h:form prependId="false" onsubmit="doGet(this)">
<h:selectOneMenu id="country" value="#{bean.country}">
<f:selectItems value="#{bean.countries}" />
<f:ajax listener="#{bean.loadCities}" render="city" />
</h:selectOneMenu>
<h:selectOneMenu id="city">
<f:selectItems value="#{bean.cities}" />
</h:selectOneMenu>
<input type="submit" value="Search" />
</h:form>
<h:form>
具体隐藏字段:
function doGet(form) {
form.method = "get";
form.removeChild(document.getElementsByName(form.name)[1]);
form.removeChild(document.getElementById("javax.faces.ViewState"));
}
关于ajax - 如何使用 <f :ajax> in a plain <form> instead of <h:form>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945297/
我是一名优秀的程序员,十分优秀!