有关文本更改的问题

时间:2011-07-19 16:03:02

标签: javascript jquery asp.net

<script type="text/javascript">

    $(function () {

        var text3;
        $('.HideButton').click(function () {


            text3 = $('#MessageText').text;

            var theButton = $(this);

            $('#disclaimer').slideToggle('slow', function () {
                theButton.val($(this).is(':visible') ? 'Hide' : 'Show');
            });


            $('<p>' + text3 + '</p>').addClass("new").insertAfter('#disclaimer');
            return false;



        });


    });

更新...以上代码不会更改按钮文本

<p id="disclaimer" > DDDDDDDDDDDDDDDDDDDDDDDDDD</p>
<asp:Button ID="Button1" CssClass="HideButton" runat="server" Text="Hide" />

我希望每次按下按钮时都会更改按钮的文字..但它不是

<p  id="disclaimer"  > 

    <input id="MessageText" type="text" />


</p>

<asp:Button ID="Button21" CssClass="HideButton" runat="server" Text="Hide" />

在文本框中输入消息时,应该在“#disclaimer消失

时出现

5 个答案:

答案 0 :(得分:1)

将呈现给表单元素。这意味着您应该使用.val()代替.text()

同样正如尼尔指出的那样,在你被执行之前你会回来。

    $('.HideButton').click(function () {
        $('#disclaimer').slideToggle('slow');

        // return false;

        if ($('#disclaimer').is(':visible')) {
            $(this).val('Hide');

        } else {
            $(this).val('Show');

        }
    });
});

<p id="disclaimer" > DDDDDDDDDDDDDDDDDDDDDDDDDD</p>
<asp:Button ID="Button1" CssClass="HideButton" runat="server" Text="Hide" />

答案 1 :(得分:0)

那是因为你在更改任何文字之前就已经回来了。

删除return ...;(或将其移至函数末尾)

答案 2 :(得分:0)

尝试在结尾处返回false;)

答案 3 :(得分:0)

返回后,您的代码将永远不会被执行。试试这个

$('.HideButton').click(function () {
        var theButton = $(this);
        $('#disclaimer').slideToggle('slow', function(){
            theButton.val($(this).is(':visible')?'Hide':'Show');
        });
    return false;
});

答案 4 :(得分:0)

您的原始问题在几个不同的时间和几种不同的方式得到了回答。现在你已经问过什么本质上是一个全新的问题了。

我建议在他们自己的问题中形成任何进一步的变化。

这是你现在想要的吗?

http://jsfiddle.net/kasdega/99GaJ/1/