2014-10-30 30 views
0

我有一個名爲「分支代碼」的文本框,它將分支與公司卡事務聯繫起來。有時需要在多個分支之間拆分交易。我有一個表在MVC中動態構建,其中包含需要填寫的表單。在分支代碼表單元格中,我添加了一個href,它將觸發splitTransaction javascript函數,該函數打開一個允許構建值的新窗口。這個新值需要被寫回到父窗口中,該文本框緊挨着打開子窗口的超鏈接。我的問題是,如何將文本框的名稱發送到子窗口?我不知道如何得到它。單擊鏈接時將動態文本框元素ID發送到子窗口

這是我的觀點:

@model List<intranetMVC.Models.sp_CorpCardEmpGetTrans_Result> 

@{ 
ViewBag.Title = "Index"; 
} 

<h2>Corporate Card Transactions</h2> 

@using (@Html.BeginForm("Index", "CorpCardTransactions", FormMethod.Post)) 
{ 
    <table cellpadding="8"> 
     <tr> 
      <th class="col-md-2">Transaction Details</th> 
      <th class="col-md-2">Payee</th> 
      <th>Amount</th> 
      <th class="col-md-2">Description</th> 
      <th class="col-md-1">GL/Account</th> 
      <th class="col-md-1">Branch Code</th> 
      <th class="col-md-1">Receipt</th> 
     </tr> 
     @for (int i = 0; i < Model.Count; i++) 
     { 
      <tr> 
       <td valign="top"> 
        @Html.HiddenFor(m => m[i].ID) 
        @*@Html.DisplayFor(m => m[i].AccountID) 
        @Html.HiddenFor(m => m[i].AccountID)<br /> 
        <em>@Html.DisplayFor(m => m[i].CardHolderName)</em> 
        @Html.HiddenFor(m => m[i].CardHolderName)<br />*@ 
        Posted: @Html.DisplayFor(m => m[i].PostDate) 
        @Html.HiddenFor(m => m[i].PostDate)<br /> 
        TranDate: @Html.DisplayFor(m => m[i].TranDate) 
        @Html.HiddenFor(m => m[i].TranDate) 
       </td> 
       <td valign="top"> 
        @Html.DisplayFor(m => m[i].Payee) 
        @Html.HiddenFor(m => m[i].Payee) 
       </td> 
       <td valign="top"> 
        @Html.DisplayFor(m => m[i].Amount) 
        @Html.HiddenFor(m => m[i].Amount) 
       </td> 
       <td valign="top">@Html.EditorFor(m => m[i].Description)</td> 
       <td valign="top">@Html.EditorFor(m => m[i].GL_Account)</td> 
       <td valign="top"> 
        @Html.EditorFor(m => m[i].BranchCode)<br /> 
        <a href="#" onclick="splitTransaction();">Split Transaction</a> 
      </td> 
       <td valign="top">@Html.EditorFor(m => m[i].Receipt)</td> 
      </tr> 
     }    
    </table> 
    <br /> 
<input type="submit" name="saveBtn" id="saveBtn" value="Save Progress" style="font-size:1.2em;font-weight:bold;width:200px;" /> <input type="submit" name="finishBtn" id="finishBtn" value="Finish and Close Statement" style="font-size:1.2em;font-weight:bold;width:250px;" /> @Html.ActionLink("Cancel", "Index", "Statements") 
<p style="margin-top:1em;"><span style="color:green; font-size:14px;">@ViewBag.Message</span> <span style ="color:#b94a48; font-size:14px;font-weight:bold;">@ViewBag.Error</span></p> 

<script type="text/javascript"> 
var popup; 
function splitTransaction() { 
    popup = window.open("splittrans.htm", "Popup", "width=400,height=200"); 
    popup.focus(); 
} 
</script> 
} 

這裏是頁面的源代碼看起來像分支代碼表格單元格中的一個:

<td valign="top"> 
        <input class="k-textbox" data-val="true" data-val-number="The field  BranchCode must be a number." id="_0__BranchCode" name="[0].BranchCode" value="11" /><br /> 
        <a href="#" onclick="splitTransaction();">Split Transaction</a> 
      </td> 

當我點擊鏈接到「拆分交易「,我如何將它旁邊的文本框的值發送到打開子窗口的函數?或者,如何在將新值發送回父窗口時引用此文本框?頁面上可能有很多人。它看起來好像他們被命名爲這樣的:_0__BranchCode等

回答

0

這將是更好的,而處理click事件,使用onclick屬性

<a href="#" class="split">Split Transaction</a> 

和腳本

$('.split).click(function() { 
    // get the adjacent (sibling) textbox value 
    var value = $(this).siblings().first().val(); 
    // do something with the value 
}); 

或者你可以使用$(this).prev('.k-textbox').val()$(this).closest('td').children('input').val();

+0

如果我想寫一個值從子窗口回到branchCode文本框,我可以發送孩子當我打開它的文本框的ID,以便我知道哪個元素回寫?那是如何工作的? – Russ668 2014-11-05 18:37:03

相關問題