1

我正在使用 fancybox 并单击锚标记,我将打开一个 iframe,如下所示:-

<a href="/Files/Upload/?personId=@Model.PersonID" class="iframe UpdateLink privilegeLevelIdentityForFile" data-privilegelevelid="@Model.PrivilegeLevelInfoForCurrentUser.PrivilegeLevelInfo.LevelId" title="Upload file(s)">[ + ]</a>

iFrame 由以下形式组成:-

<div id="divUploadForm">
@using (Html.BeginForm("UploadSpecifiedFileToS3Completed", "Files", FormMethod.Post, new { id = "uploadForm", enctype = "multipart/form-data" }))
{
    @Html.DropDownList("PrivilegeLevelId", new SelectList((IEnumerable<iNGRID_Data.Security.PrivilegeLevel>)ViewData["PrivilegeLevelsList"], "LevelId", "LevelName"))

    <hr />
    <p>
        <input type="submit" value="Upload" id="uploadButton" class="button" />
    </p>
}
</div>

我在尝试在 iframe 中设置下拉列表的值时使用以下函数

$('.privilegeLevelIdentityForFile').click(function () {
    var privilegeLevelId = $(this).data("privilegelevelid");
    alert(privilegeLevelId);
    $("#uploadForm").contents().find('#PrivilegeLevelId').val(privilegeLevelId);
});

我正确收到警报,但无法设置该值。

请帮忙。

4

1 回答 1

0

您需要contents()iframe元素上使用,而不是diviframe 中的包含。试试这个:

$("#iframeElement").contents().find('#PrivilegeLevelId').val(privilegeLevelId)

显然,您需要根据需要进行更改#iframeElement

于 2013-02-11T10:26:13.793 回答