标签存储<div id =“test”>变量内容</div>(带有html标签)和html标签

时间:2011-03-16 16:30:41

标签: c# javascript jquery asp.net html

似乎无法使用它,因为某些原因它不会将newdiv输出到我的asp控件(Label1)id,就像我的标签一样存储变量内容(带有html标签)

即使将其设置为false(使用java / jquery也不是很好),我也会自动发回帖子

<script type="text/javascript">
    $(function () {
            $(document).ready(function () {
                $('button').click(function () {
                var x = $('textarea').val();
                $('textarea').val('');
                var label = $("#<%= Label1.ClientID %>");
                var newdiv = $("<div></div>").html(x).attr('id', 'test');
                $('#test1').append(newdiv);
                var serializer = new XMLSerializer();
                label.text(serializer.serializeToString(newdiv));
                return false;
            });
        });
    });
</script>

<textarea style="border: 0" cols="77" rows="2">Write Something....</textarea>
<button>Post Message</button>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<div id="test1">
    </div>
</asp:Content>

需要弄清楚如何使用我的jquery设置asp控件的Text而不是Label:

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

3 个答案:

答案 0 :(得分:2)

你不应该在click事件处理程序中有$(document).ready调用。当你点击按钮时,你所做的只是绑定。

答案 1 :(得分:1)

<script type="text/javascript">
   $(document).ready(function () {
    $('#<%= myButton.ClientID %>').click(function () {
            var x = $('textarea').val();
            $('textarea').val('');
            var label = $("#<%= Label1.ClientID %>");
            var newdiv = $("<div></div>").html(x).attr('id', 'test');
            $('#test1').append(newdiv);
            var serializer = new XMLSerializer();
            label.text(serializer.serializeToString(newdiv));
            return false;
        });
    });

您应该在document.ready上绑定click事件,而不是oposite。首先确保在单击按钮时调用函数。

您想在每次点击按钮时执行此操作吗?我建议你给你的按钮一个id并改变

 $("button").click(function () {

$('#<%= myButton.ClientID %>').click(function () {

答案 2 :(得分:1)

在这里工作小提琴 - 你的代码有很多错误,但我会坚持开始做大事。然后你可以理清一些小东西。 http://jsfiddle.net/mrtsherman/4BEGs/1/

$('#mybutton').click(function () {
    //store text area value
    var x = $('#mytextarea').val();
    //clear text area
    $('#mytextarea').val('');
    //enter textarea value into a new div
    var newdiv = $("<div></div>").html(x).attr('id', 'test');
    $('#test1').append(newdiv);

    //Get html of newdiv, including itself
    var html = $('<div>').append(newdiv.clone()).remove().html(); 
    //Escape the html of newdiv so that we can display it on the page
    escapedhtml = $('<div/>').text(html).html();
    //Set label to be new html
    $("#mylabel").html(escapedhtml);
});

您的代码最有可能导致回发,因为您的asp标记中有runat =“server”。正如之前的帖子所指出的,如果你不需要,不要使用ASP控件。只需将<input type="button" value="mybutton" />直接写入您的aspx页面,而不是依赖于asp控件。

您的代码是匿名函数,不需要。您的代码应该在$(document).ready。

中执行

优良作法是使用货币符号存储jquery变量,例如var label = $('#label'),这样您就知道它是一个jQuery对象。 var $label = $('#label')

希望这能让你顺利上路。