未捕获的TypeError:undefined不是函数 - checkValidity

时间:2015-03-29 19:56:59

标签: jquery ajax html5

我正忙着上学,使用AJAX,jQuery和HTML 5.我需要建立一个聊天,一切都有效,除了发布帖子的这一部分。

这是表格的代码:

<form id="chatForm">
        <div id="chatHead">
            <input type="text" name="chatName" id="userName" placeholder="Username" required="required" />
            <input type="button" value="Start" name="chatButton" id="chatButton" />
        </div>

        <div id="chatBox"></div>

        <div id="chatFoot">
            <input type="text" name="chatMessage" id="chatMessage" size="63" placeholder="Bericht" />
            <input type="submit" name="chatSend" id="chatSend" value="Send" disabled="disabled" />
        </div>
    </form>

这是插入帖子的功能:

 function postChat() {
    $(chatForm).submit(function () {
        return false;
    });

    if ($(chatForm)[0].checkValidity()) {
        if (!this.checkValidity()) {

        }
        else {
            var Naam = $(chatName).val(),
                Bericht = $(chatMessage).val();

            $.get(phpScript, {action: "addMessage", name: Naam, message: Bericht})
                .done(function () {
                    postChat();
                    startChat("system");
                });
            $(chatMessage).val("");
        }
    }}

我总是收到此错误:Uncaught TypeError: undefined is not a function

它说这部分代码出错:

if (!this.checkValidity()) {

    }

我不确切知道这意味着什么,但确保系统不会继续发布消息。

如果有人也可以向我解释这究竟是什么,我会非常优雅。

1 个答案:

答案 0 :(得分:0)

你认为这个&#34;这个&#34;是

if (!this.checkValidity()) {

}
  • Word&#34; this&#34;是指没有checkValidity()的对象 功能
  • 您的代码看起来不对,并且有一个递归(您在其内部调用了postChat()函数)

也许你最好用这个骨架重写你的逻辑:

注意:从提交按钮中删除禁用=&#34;已停用&#34;

$(document).ready(function(){
    /* Run code only when DOM is ready (document loaded) */
    $('#chatForm').on('submit', function(e) {
        /* Run code when user sumbits the form (pressing button or ENTER */.
        e.preventDefault(); // <-- prevent form to be sended

        /*
            NOW HERE DO VALIDATION AND AJAX POSTS
            As example I inserted part of your code.
         */

        if ($('#chatForm')[0].checkValidity()) {
            var Naam = $('#userName').val(), Bericht = $('#chatMessage').val();

            $.get(phpScript, {action: "addMessage", name: Naam, message: Bericht})
                .done(function () {
                    startChat("system");
            });

            $(chatMessage).val("");
        } else {
            alert("Validation failed");
        }
    });
});