我有一个JSP页面,它由三个表单组成,每个表单都包含一个下拉列表。
在第一个下拉列表onchange
上调用事件并从数据库获取数据并将数据保存到另一个下拉列表中。我的问题是当页面重新加载时,下拉列表中选择的数据被更改。
如何解决页面加载时数据未更改的问题?
答案 0 :(得分:1)
AJAX部分在这里:
将您的内容包含在3个单独的div中。 现在,调用reloadReqdForm()函数,而不是提交页面。 something.do是您正在使用的Action的名称。 现在,无论结果如何,它将在最后一个函数中作为req.responseText出现,你将把它放在消息var中。 div1是您想要重新加载的div的名称/ ID。
function reloadReqdForm(){
var url = "something.do?queryString";
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("POST", url, true);
req.onreadystatechange = callbackReloadForm;
req.send(null);
}
function callbackReloadForm()
{
if (req.readyState == 4)
{
if (req.status == 200) {
drawResponse();
}
}
}
function drawResponse() {
var message = req.responseText;
document.getElementById("div1").innerHTML=message;
}
希望,它会奏效。
答案 1 :(得分:0)
如何使用JQuery One方法,使处理程序只执行一次。
$('something').one('onChange', function(e) {
alert('You will only see this once.');
});
答案 2 :(得分:0)
一种解决方案是使用AJAX。 另一个是提交您想要保留的下拉值。通过在模型对象中设置它们来从控制器返回这些值。