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());