我有一个使用java的play 2 framewrok项目。 在视图文件中,有一个下拉列表,该列表由控制器类中的方法填充。 除了下拉列表,我还有一个json数据结构,由javascript方法和视图文件中的事件侦听器填充。 现在我想要一种方法将下拉列表中的选定项添加到json对象。 我提供了以下代码的片段。
这是下拉列表的代码:
<select class = "selectone">
@for(gesture <- gesturesList){
<option value = @gesture.id>
@gesture.getName()
</option>
}
</select>
我在javascript和json对象下面有以下代码片段
<script type="text/javascript" charset="utf-8">
/* this is our websocket connection */
var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket
var socket = new WS("@routes.Application.webSocket().webSocketURL(request)")
/* this is the json object , it contains x and y coordinates from HTML5 canvas */
var jNode = {"x":arrayX,"y":arrayY }
/* this is a jquery function for tranmitting json object through the websocket */
$('button.add').click(function() {
socket.send(JSON.stringify(jNode));})
</script>
}
有人可以告诉我如何将从下拉列表中选择的项目添加到json对象,以便我们在json对象中有类似以下内容:
var jNode = {“x”:arrayX,“y”:arrayY,“item”:Itemselected}
谢谢大家
答案 0 :(得分:1)
你应该意识到这是一个JS + HTML主题,所以显示Play的视图对于JS极客没有任何意义......
无论如何,当您使用jQuery时,也可以使用它来获取val()
。顺便说一句,记住它应放在某个事件中(即:click()
),否则它将复制页面加载后设置的值,并且不会更改它):
<select class = "selectone">
<option value="0">Choose</option>
<option value="1">Gest 1</option>
<option value="2">Gest 2</option>
<option value="3">Gest 3</option>
</select>
<script type="text/javascript" charset="utf-8">
// ...
$('button.add').click(function() {
var jNode = {"x":arrayX,"y":arrayY , "item" : $("select.selectone").val()};
socket.send(JSON.stringify(jNode));
});
// ...
</script>
来自val() API:
$('select.foo option:selected').val(); // get the value from a dropdown select
$('select.foo').val(); // get the value from a dropdown select even easier