【问题标题】:How to pass value of radio button which is clicked to Spring MVC controller?如何将单击的单选按钮的值传递给 Spring MVC 控制器?
【发布时间】:2014-04-08 12:10:16
【问题描述】:

我在我的一个项目中使用 Spring MVC 控制器。

下面是我的 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>

以下是我在控制器代码中的方法-

   @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,然后我将点击提交按钮,然后我在@ 中看到Hellodata 变量中的 987654333@ 变量和 World 值是正确的。

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

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

有什么想法我做错了什么吗?

【问题讨论】:

    标签: java jquery spring jsp spring-mvc


    【解决方案1】:

    用这个替换你的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/

    【讨论】:

    • 它根本不工作。实际上,如果我单击插入单选按钮,如果我使用您的 javascript,现在也不会生成两个文本框...您可以查看您的 jsfiddle 示例.. 也没有生成文本框。 .
    • @AKIWEB 我的错误。道歉。现在检查它现在是否正常工作。我已经更新了我的答案和 jsfiddle
    【解决方案2】:

    把代码改成,

    来自,

    @RequestParam String name
    

    到,

    @RequestParam String tt
    

    因为您提到单选按钮的名称为 tt 。所以无法得到像Insert , Update , Delete 这样的值。

    【讨论】:

      猜你喜欢
      • 2021-08-16
      • 2014-03-26
      • 2019-03-24
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2020-09-02
      • 2019-07-06
      相关资源
      最近更新 更多