我正在开发一个网页,该网页提供一个带有下拉列表的表单,用于查看来自不同年份的数据。年份是配置的URL路由的一部分。页面加载时,URL可以是:activitylog / department / year。
在此页面上提交表单后,即使用户选择了另一年查看,URL也不会更改。一切似乎都在正常运作。当表格上的年份从2010年更改为2008年时,将从Web服务器显示2008年的正确信息。
然而,浏览器中显示的URL继续显示2010.虽然这不是一个真正的问题,但我觉得显示这个特定动态页面的直接URL会很好,即:activitylog / IT / 2008。
处理这样的事情的首选方法是什么?我相信我可以使用JQuery来捕获表单提交,并使用所选年份生成新的URL。
MVC内置了一个可以处理这个我忽略的方法吗?
答案 0 :(得分:3)
您可以在提交之前使用jQuery修改表单操作:
$(function() {
$('#idofyourform').submit(function() {
var selectedYear = $('#idofyeardropdown').val();
this.action = this.action.replace(/\/[\d]{4}$/, '/' + selectedYear);
return true;
});
});
答案 1 :(得分:1)
Javascript将成为你的朋友。
您可能想要创建一个javascript方法来更改表单上的action属性,并在表单上使用onSubmit事件,或让您的按钮直接调用此方法(不要使用type =“button”而不是在输入上输入=“提交”并让方法设置操作,然后提交表单。