【问题标题】:Send dynamic textbox element id to child window when clicking a link单击链接时将动态文本框元素 ID 发送到子窗口
【发布时间】:2014-12-27 03:09:12
【问题描述】:

我有一个名为“分行代码”的文本框,它将分行与公司卡交易联系起来。有时需要在多个分支之间拆分事务。我有一个在 MVC 中动态构建的表,其中包含需要填写的表单。在分支代码表单元格中,我添加了一个 href,它将触发 splitTransaction javascript 函数,该函数打开一个允许构建值的新窗口。需要将这个新值写回到父窗口中打开子窗口的超链接旁边的文本框中。我的问题是,如何将文本框的名称发送到子窗口?我不知道如何得到它。

这是我的看法:

@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 等。

【问题讨论】:

    标签: javascript c# jquery asp.net asp.net-mvc-5


    【解决方案1】:

    处理点击事件比使用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();

    【讨论】:

    • 如果我想从子窗口将值写回 branchCode 文本框,是否在打开文本框时将文本框的 ID 发送给孩子,以便我知道要写回哪个元素?是这样的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2020-02-20
    • 2011-07-09
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多