2014-03-06 75 views
4

我在我的一個項目中使用了Spring MVC控制器。如何將單擊的單選按鈕的值傳遞給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,然後我會點擊提交按鈕,之後我看到Hello的值在node變量和Worlddata變量是正確的。

但不知何故,name變量是空的而不是它應該顯示insert值,因爲我已經點擊插入單選按鈕。

而且同樣的事情應該發生更新和刪除單選按鈕..

我做錯了什麼有什麼想法?

回答

3

用這個替換您的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/

+0

它根本不工作。事實上,如果我點擊插入單選按鈕,現在兩個文本框也沒有得到生成,如果我使用您的JavaScript ...你可以看看你的jsfiddle的例子..沒有文本框也得到了生成。 – AKIWEB

+0

@AKIWEB我的錯誤。道歉。現在檢查它現在工作。我已經更新了我的答案,並且無所不用 –

0

更改代碼,

從,

@RequestParam String name 

要,

@RequestParam String tt 

因爲你提到T的名稱他單選按鈕爲tt。所以不能得到像Insert , Update , Delete這樣的值。

相關問題