jQuery .val() не выбирает значение innerText

У меня есть этот метод:

$(".btnUpdateOnlineCommunity").click(function () {
    var communityDiv = $(this).closest("div");

    var communityName = communityDiv.find('.lblOnlineCommunityDescription');
    var descriptionName = communityDiv.find('.pOnlineCommunityDetails');
    var communityLink = communityDiv.find('.linkOnlineCommunity');

    $('.txtCommunityName').val(communityName.val());
    $('.txtCommunityDescription').text(descriptionName.val());
    $('.txtCommunityLink').val(communityLink.val());

    var communityId = $(communityDiv).data("id");
    $(".dvCommunityDialog").data("communityId", communityId).dialog("open");
});

txtCommunityName, txtCommunityDescription а также txtCommunityLink все элементы управления в dvCommunityDialog который является диалогом jQuery. Проблема в том, что в диалоговом окне открывается значение communityName, descriptionName а также communityLink не отображаются в элементах управления, но когда я пишу это так $('.txtCommunityLink').val('Test'); я получил Test в контроле, в чем здесь проблема?

HTML

<p runat="server" id="pInterest">
    <asp:Button runat="server" ID="btnAddInterest" CssClass="btnAddCommunity" Text="Add Interest" OnClientClick="return false;" />
    <asp:Repeater runat="server" ID="rptOnlineCommunities" OnItemDataBound="rptOnlineCommunities_ItemDataBound">
        <HeaderTemplate>
            <div id="tblUseCommunities" class="dvOnlineCommunityMain">
        </HeaderTemplate>
        <ItemTemplate>
            <div runat="server" id="dvOnlineCommunity" class="dvOnlineCommunity">
                <asp:Label runat="server" ID="lblOnlineCommunityDescription" CssClass="lblOnlineCommunityDescription"></asp:Label>
                <p runat="server" id="pOnlineCommunityDetails" class="pOnlineCommunityDetails"></p>
                <a runat="server" id="linkOnlineCommunity" class="linkOnlineCommunity" target="_blank"></a>
                <p>
                    <asp:Button runat="server" ID="btnUpdateOnlineCommunity" CssClass="btnUpdateOnlineCommunity" Text="Update" OnClientClick="return false;" />
                    <asp:Button runat="server" ID="btnDeleteOnlineCommunity" CssClass="btnDeleteOnlineCommunity" Text="Delete" OnClientClick="return false;" />
                </p>
            </div>
        </ItemTemplate>
        <AlternatingItemTemplate>
            <div runat="server" id="dvOnlineCommunity" class="dvOnlineCommunity">
                <asp:Label runat="server" ID="lblOnlineCommunityDescription" CssClass="lblOnlineCommunityDescription"></asp:Label>
                <p runat="server" id="pOnlineCommunityDetails" class="pOnlineCommunityDetails"></p>
                <a runat="server" id="linkOnlineCommunity" class="linkOnlineCommunity" target="_blank"></a>
                <p>
                    <asp:Button runat="server" ID="btnUpdateOnlineCommunity" CssClass="btnUpdateOnlineCommunity" Text="Update" OnClientClick="return false;" />
                    <asp:Button runat="server" ID="btnDeleteOnlineCommunity" CssClass="btnDeleteOnlineCommunity" Text="Delete" OnClientClick="return false;" />
                </p>
            </div>
        </AlternatingItemTemplate>
        <FooterTemplate>
            </div>                   
        </FooterTemplate>
    </asp:Repeater>
</p>

<div class="dvCommunityDialog">
    <table>
        <tbody>
            <tr>
                <td class="dialogControlLabels">Title/Name:
                </td>
                <td>
                    <input type="text" id="txtCommunityName" class="txtCommunityName" />
                </td>
            </tr>
            <tr>
                <td class="dialogControlLabels">Description:
                </td>
                <td>
                    <textarea id="txtCommunityDescription" class="txtCommunityDescription"></textarea>
                </td>
            </tr>
            <tr>
                <td class="dialogControlLabels">Link:
                </td>
                <td>
                    <input type="text" id="txtCommunityLink" class="txtCommunityLink" />
                </td>
            </tr>
        </tbody>
    </table>
</div>

1 ответ

Учитывая ваш HTML, я вижу, что элементы, которые вы пытаетесь получить value из типа label, p а также a которые не имеют value атрибут для чтения. Вы должны вместо этого получить их text():

var $communityName = communityDiv.find('.lblOnlineCommunityDescription');
var $descriptionName = communityDiv.find('.pOnlineCommunityDetails');
var $communityLink = communityDiv.find('.linkOnlineCommunity');

$('.txtCommunityName').val($communityName.text());
$('.txtCommunityDescription').text($descriptionName.text());
$('.txtCommunityLink').val($communityLink.text());
Другие вопросы по тегам