gpt4 book ai didi

ajax - 如何使用 in a plain
instead of ?

转载 作者:行者123 更新时间:2023-12-01 14:59:37 24 4
gpt4 key购买 nike

我有一个使用标准 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>

用这个 JS 把它变成一个 GET 表单并删除两个 <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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com