2015-10-04 65 views
0

首先,我是新來的HTML和JavaScript,所以請去容易:)如何獲得選擇文本,表格單元格值當按鈕被點擊

我有一個表在HTML中,其中每行都有一個下拉(具有相同的選項)和一個按鈕。點擊按鈕後,我想將下拉菜單中所選項目的文本以及另一個字符串傳遞給控制器​​。

到目前爲止,我有

 <table> 
      <tr> 
       <td>First name</td> 
       <td>Surname</td> 
      </tr> 
      @foreach (var row in Model.Rows) 
      { 
       <tr> 
        <td>@row.FirstName</td> 
        <td> 
         <select id="surnames"> 
          @foreach (var name in Model.Surnames) 
          { 
           <option [email protected]()>@name.ToString()</option> 
          } 
         </select> 
        </td> 
        <td><input type="button" id="myButton" value="Go" onclick="location.href='@Url.Action("MyAction", "MyController", new { @firstName = row.FirstName, @newSurname = ??? })'" /></td> 
       </tr> 
      } 
     </table> 

     <script> 
      function getSelectedVersion() { 
       var version = document.getElementById("surnames").text; 
      } 
     </script> 

很顯然,這是我的代碼下調和修改後的版本。在實踐中,我在模型的每一行都有更多的屬性。

據我瞭解,我目前有一個ID問題,對於所有行,我有相同的ID爲選擇。在爲每一行添加一個腳本的時候,我想不出一種方法,它會工作(我認爲),但是會變得不那麼優雅(表中每一行的foreach,然後在表標籤外部分配一個腳本到每一行的下拉列表)

最重要的是,我錯過了調用我的腳本來獲取文本,然後將它傳遞到控制器上按鈕單擊的位。

理想情況下,我想將整個行對象傳遞給控制器​​,但我現在有一個解決方法,只需要字符串firstName。

對於表中的每一行,模型中只有一個Names集合(與模型中每個Row中的一個相對),因爲每個表的選項始終是相同的。

回答

1

在你的HTML代碼的頂部包括jQuery的

<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
在你的代碼底部

然後添加以下代碼:

<script> 
    $("input[type=button]").on("click", function(){ 
    var FIRSTNAME = ($(this).parent().prev().prev()).html(); 
    //alert(FIRSTNAME); 
    var NEWSURNAME = ($(this).parent().prev().children().attr("selected", "selected")).val(); 
    //alert(NEWSURNAME); 
    $.post("/MyController/MyAction", { firstName: FIRSTNAME, newSurname: NEWSURNAME }); 
}); 
</script> 
+0

優秀的工作,謝謝你! (我確實沒有工作過一段時間,直到我意識到我的控制器和操作錯了方向......哦!)你已經很好地繞過了我將要發現的ID問題:) –

+0

注意到並做了 :) –

0

可能是這樣嗎?

<input type="button" onclick="location.href='@Url.Action("MyAction", "MyController", new {})' + '?' + 'newSurname='+getSelectedVersion()"/> 
+0

我調整這個稍微有頭名新的{},但在控制器中,我的兩個參數作爲第一:「Bob?surname = undefined」和2nd:null –

+0

在Ashik的答案後,我意識到我錯過了文件頂部的腳本代碼,有工作d。不過,我仍然有多個ID問題。 –

相關問題