簡體   English   中英

如何將單擊的單選按鈕的值傳遞給Spring MVC控制器?

[英]How to pass value of radio button which is clicked to Spring MVC controller?

我在我的一個項目中使用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>

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

將代碼更改為,

來自,

@RequestParam String name

至 ,

@RequestParam String tt

因為您已經將單選按鈕的名稱稱為tt 所以無法獲得像Insert , Update , Delete這樣的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM