Textarea不使用jQuery live keyup函数

时间:2013-06-09 22:04:51

标签: javascript jquery ajax dom

我正在尝试为个人项目构建标记朋友系统。我在网上找到了一些很棒的教程,但现在我被卡住了。

当我在标签栏中输入@时没有任何反应。显示和消息框应向下滑动,以便用户可以选择他们想要标记的朋友。

我做错了什么?

<div id="tagbox">
    <div class="textarea">
        <textarea id="contentbox" name="contentbox"></textarea>
        <div id='display'></div>
        <div id="msgbox"></div>
        <button type="submit" id="tag_button" value="Update" name="submit">Add</button>
    </div>

这是AJAX / jQuery部分:

<script type="text/javascript">
    $(document).ready(function() {
        var start=/@/ig;
        var word=/@(\w+)/ig;

        $('#tagbox .textarea textarea[name="contentbox"]').live("keyup",function() {
            var content=$(this).text();
            var go= content.match(start);
            var name= content.match(word);
            var dataString = 'searchword='+ name;

            if(go.length>0) {
                $("#msgbox").slideDown('show');
                $("#display").slideUp('show');
                $("#msgbox").html("Type the name of someone or something...");
                if(name.length>0) {
                    $.ajax({
                        type: "POST",
                        url: "addfriends.php",
                        data: dataString,
                        cache: false,
                        success: function(html) {
                            $("#msgbox").hide();
                            $("#display").html(html).show();
                        }
                    });
                }
            }
            return false();
        });

        $(".addname").live("click",function() {
            var username=$(this).attr('title');
            var old=$('#tagbox .textarea textarea[name="contentbox"]').html();
            var content=old.replace(word,""); 
            $('#ws3 .textarea textarea[name="contentbox"]').html(content);
            var E="<a class='red' contenteditable='false' href='#' >"+username+"</a>";
            $('#tagbox').append(E);
            $("#display").hide();
            $("#msgbox").hide();
            $('#ws3').focus();
        });
    });
</script>

1 个答案:

答案 0 :(得分:3)

要获取textarea的值,您必须使用方法.val()而不是text(),否则content将始终为空。

var content=$(this).val();