【问题标题】:I can't get a select box value until is clicked在单击之前我无法获得选择框值
【发布时间】: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


【解决方案1】:

你可以像这样从url获取参数

  req.params.years

【讨论】:

    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多