使用iframe中的jquery设置下拉值

时间:2013-02-11 10:22:08

标签: javascript jquery asp.net-mvc-3

我正在使用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);
});

我正确收到提醒但无法设置值。

请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要在contents()元素上使用iframe,而不是在iframe中使用div。试试这个:

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

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