【发布时间】:2023-03-24 06:05:02
【问题描述】:
我有这个选择框:
<select class="span2" name="filterYear" id="filterYear" style="margin-right:10px;">
<% for (var i = 0; i < years.length; i++) { %>
<% if (years[i] == selectedYear) { %>
<option value="<%= years[i] %>" selected="selected"><%= years[i] %></option>
<% } else { %>
<option value="<%= years[i] %>"><%= years[i] %></option>
<% } %>
<% } %>
</select>
有了这个js函数:
$("#filterYear").change(function(e){
$.ajax({
url: '/changeYear/' + this.value,
type: 'GET'
});
}
});
这就是 node.js 函数。我得到了 selectBox 的值并将其设置为另一个变量:
exports.changeYear = function (req, res) {
var year = req.param('year');
req.session.maindashSelectedYear = year;
};
问题是这样的:如果用户不点击选择框,函数req.param('year') 不起作用...但如果用户点击它,一切正常!我不知道如何解决这个问题。
【问题讨论】:
-
嗯,这是您的代码的预期行为。只有当
change事件在 select 中触发时,即用户选择某些内容时,您才会发送 GET 请求。你能告诉我究竟在何时何地req.param('year')不起作用吗? -
selectedYear 变量从何而来。更改仅在某些更改时触发。在您的情况下,在用户点击之前没有任何变化
-
当用户单击另一个选择框(月份)时,我需要年份值。只有当用户以前单击年份选择框时,我才会在用户单击月份框时获得年份值。如果用户尚未单击年份框并单击月份框,则年份值未定义。当用户第一次进入屏幕时会发生这种情况(如果他在一年前还没有选择)。
-
能否请您显示您在哪里使用exports,changeYear函数的路线?
标签: javascript jquery node.js jquery-selectbox