java - 如何将单击的单选按钮的值传递给 Spring MVC Controller ?

标签 java jquery spring jsp spring-mvc

我在我的一个项目中使用 Spring MVC Controller 。

下面是我的 JSP 代码,其中将显示三个单选按钮。第一个是 Insert,第二个单选按钮是 Update,第三个单选按钮是 Delete

单击Insert 单选按钮后,它会在Insert 单选按钮旁边显示两个文本框,其他两个单选按钮也一样。这是我的 jsfiddle

<script type="text/javascript">
    $(document).ready(function(){
        $(".changeAction").on("click", function(){
            $('.changeable').html('')
            var divId = "#" + $(this).attr("div-id");
            var myInput = '<label for="Node"> Node </label> <input type="text" name="node" size="20" /> <label for="Data"> Data </label> <input type="text" name="data" size="100"/>'
            $(divId).html(myInput);
        })
    })      
</script>

<body>
<form method="post" action="testOperation">
    <!-- I used only one hidden box to store value -->
    <input type="hidden" name="name" id="dynamicName">
    <input class="changeAction" type="radio" name="tt" value="Insert" div-id="insert"/> Insert
    <div id="insert" class="changeable"></div>
    <br/> <input class="changeAction" type="radio" name="tt" value="Update" div-id="update"/> Update
    <div id="update" class="changeable"></div>
    <br/> <input class="changeAction" type="radio" name="tt" value="Delete" div-id="delete"/> Delete
    <div id="delete" class="changeable"></div>
    <br/>
    <input type="submit">
</form>
</body>

下面是我在 Controller 代码中的方法-

   @RequestMapping(value = "testOperation", method = RequestMethod.GET)
    public Map<String, String> testOperation() {
        final Map<String, String> model = new LinkedHashMap<String, String>();
        return model;
    }

    @RequestMapping(value = "testOperation", method = RequestMethod.POST)
    public Map<String, String> testOperations(@RequestParam String name, 
                                              @RequestParam String node, 
                                              @RequestParam String data) {
        final Map<String, String> model = new LinkedHashMap<String, String>();

        System.out.println(name);
        System.out.println(node);
        System.out.println(data);

        return model;
    }

问题陈述:-

假设我单击Insert 单选按钮并在第一个文本框中键入Hello 并在第二个文本框中键入World,然后我将点击提交按钮,然后我在 node 变量中看到 Hello 值,在 data 变量中看到 World 值,这是正确的。

但不知何故,name 变量变为空,而不是它应该显示 insert 值,因为我单击了插入单选按钮。

同样的事情应该发生在更新和删除单选按钮上..

有没有想过我做错了什么?

最佳答案

以此替换您的 Javascript。它对我有用。

$(document).ready(function(){
    $(".changeAction").on("click", function(){
        $('.changeable').html('')
        var divId = $(this).attr("div-id");
        $("#dynamicName").val(divId);
        divId = "#"+divId;
        var myInput = '<label for="Node"> Node </label> <input type="text" name="node" size="20" /> <label for="Data"> Data </label> <input type="text" name="data" size="100"/>'
        $(divId).html(myInput);
    })
})

这是 jsfiddle http://jsfiddle.net/EGJk8/5/

关于java - 如何将单击的单选按钮的值传递给 Spring MVC Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22214629/

相关文章:

java - Spring 在 RedirectView 之后处理 FlashAttributes

spring - 文件上传在 Primefaces 中不起作用

java - 如何在 Java 中对 XML 元素进行排序?

java - 递归文件搜索指定扩展名

javascript - 如果他们有父类,则隐藏类

javascript - 每2秒从ajax获取数据并显示

Spring @Scheduled 每天在 4 :00AM and 4:30AM 之间的随机分钟开始

java - InetSocketAddress 中的通配符地址是什么意思?

java - 对列表中的不同类型字符串进行排序

javascript - 使 jQuery Mobile 与 apple-itunes-app 兼容