我正忙着上学,使用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()) {
}
我不确切知道这意味着什么,但确保系统不会继续发布消息。
如果有人也可以向我解释这究竟是什么,我会非常优雅。
答案 0 :(得分:0)
你认为这个&#34;这个&#34;是
if (!this.checkValidity()) {
}
也许你最好用这个骨架重写你的逻辑:
注意:从提交按钮中删除禁用=&#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");
}
});
});