2

我对这两种技术都不是很熟悉,所以请耐心等待。我的 jsp 页面上有一组单选按钮。它们的价值为 1-5。我想将该新评级更新到数据库中。我知道我必须以某种方式利用“onselect”事件,但我没有找到任何有帮助的东西。有谁知道如何做到这一点?谢谢你。

4

3 回答 3

1

假设它不是一种形式:

  1. 在javascript中检测变化
  2. 将其发布到您的服务器端脚本
  3. 也许处理它并更新数据库
于 2012-06-19T13:52:39.520 回答
0

您最好的选择是使用onchange并将其设置为将读取select标签的函数。该函数应如下所示。

function ratingChange(ele){
   var opt = sel.options[sel.selectedIndex].value;  
   var txt = sel.options[sel.selectedIndex].text; 
   //process values and test
   //assuming the form is not submitting use AJAX
}

然后onchange看起来像这样。

<select name="rating" onchange="ratingChange(this)">

于 2012-06-19T13:59:46.293 回答
0

由于您在标签中包含了 spring-mvc,我假设您想要更多关于从客户端发送信息到服务器的信息。

如果您只是使用 JSP 和标准表单,如果您在 spring 中将“commandName”和“方法”与控制器匹配,控制器将捕获通过表单发送的参数:

<form id="form" commandName="interceptedPath" method="post">
    <input id="rating1" type="radio" name="rating" value="1" checked><label for="rating1">1</label>
    <input id="rating2" type="radio" name="rating" value="2"><label for="rating2">2</label>
    <input id="rating3" type="radio" name="rating" value="3"><label for="rating3">3</label>
    <input id="rating4" type="radio" name="rating" value="4"><label for="rating4">4</label>
    <input id="rating5" type="radio" name="rating" value="5"><label for="rating5">5</label>
</form>
 @RequestMapping(value = "/interceptedPath/", method = RequestMethod.POST)
 public String submit(Model model, HttpServletRequest request) {
     Map<String, String[]> parameterMap = request.getParameterMap();
     String[] strings = parameterMap.get("rating")
     return "detailedCalc";
 }

除非您在做一些动态的事情,比如 Ajax 调用,否则不需要 JavaScript。如果您决定使用 Javascript,我建议您使用jQuery库:

$(document).ready(function () {
    $("form").submit(function () {
        $.post('/spring/locationOfAjaxController', $(this).serialize(),
            function (data) {
        }
    }
}

对于上面的代码,在文档加载到客户端之后。创建一个事件,该事件将捕获“表单”对象上的所有“提交”操作(注意表单的 id 是“表单”)。一旦发生这种情况,jQuery 将向指定的 URL 提交一个 POST。$(this).serialize()将表单数据序列化为 JSON,这将需要由服务器处理。

如果您想使用change做某事,请参阅此参考

您可以使用 maven 原型找到一个很好的 spring-mvc(没有 js)示例:org.fluttercode.knappsack:spring-mvc-jpa-demo-archetype。它将生成一个已经设置好 spring-mvc 并准备就绪的基本项目。

于 2012-06-19T15:20:04.003 回答