【问题标题】:JavaScript - Pass selected drop down list value to methodJavaScript - 将选定的下拉列表值传递给方法
【发布时间】:2019-02-07 12:40:59
【问题描述】:

这可能是一件简单的事情,但我试图从 JSP 页面上的下拉列表中捕获选定的值,并将选定的值用作方法的参数。我可以使用 select 标记中的 onchange 事件来调用 java 脚本函数并捕获值,但我不确定如何将值发送到方法。我认为有一种方法可以通过基于 ajax 的调用来做到这一点,但我不确定如何做到这一点。这是我正在使用的测试代码示例。谢谢。

function getSelected()
  {
    var selectedSource = document.getElementById("myselect").value;
        console.log(selectedSource);
  }


<select name="myselect" id="myselect" onchange="getSelected();">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
</select>

【问题讨论】:

  • 为什么这在 java 中被标记,似乎是错误的语言。 Java 不使用 var 或方法将变量定义为函数
  • 这实际上是 HTML 和 Javascript。
  • 如何将值发送到方法,该方法究竟属于哪里?客户端脚本还是服务器端 java servlets/jsp?

标签: javascript eclipse jsp


【解决方案1】:

我编辑了答案以使用 jQuery 将帖子包含到服务器。

您的 javascript 函数中有两个错误:

  • 首先你调用getselected(),但是函数名是getSelectedSource()
  • 其次,你试图找到sourceSystem,但你的id是myselect

使用 jQuery 创建 HTTP Post 并发送参数 myselect,例如,值为 selectedSource

在您的 servlet 中,您可以使用 request.getParameter("myselect") 获取此参数

 <script src="http://code.jquery.com/jquery-1.5.js"></script>
 <script>
       function getSelected()
    {
      var selectedSource = $("#myselect").val();
          console.log(selectedSource);
          $.post("test", { myselect : selectedSource},
                   function(data) {
                     alert("Data Loaded: " + data);
                   });              
    }
  </script>

<select name="myselect" id="myselect" onchange="getSelected();">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
</select>

【讨论】:

  • 那只是一个过度的网站。我复制了错误的测试功能。我仍然不确定如何将捕获的结果发​​送到 java 方法。只需将其存储在 java 变量中也可以。
  • 你的意思是在服务器中?我编辑了答案以包含一个到服务器的 http 帖子。如果您需要有关服务器代码的帮助,请发布您的 servlet 代码以便我们为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多