我尝试合并以下代码
// main chat code
$(function () {
var IWannaChat = $.connection.myChatHub;
IWannaChat.client.addMessage = function (message) {
$('#listMessages').append('<li>' + message + '</li>');
};
$("#sendMessage").click(function () {
IWannaChat.server.send($('#ideaBody').val());
});
$.connection.hub.start();
});
进入下面功能,但它似乎不再起作用(注意下面的功能显示当前项目状态)。
$(function () {
$("#sendMessage").click(function () {
$('#ideaTitle,#ideaBody').each(function () {
var $this = $(this),
currValue = this.value,
trimmedValue = $.trim(currValue),
dataValue = $this.data('default');
if (trimmedValue.length === 0 && (trimmedValue === dataValue)) {
var IWannaChat = $.connection.myChatHub
IWannaChat.client.addMessage = function (message) {
$('#listMessages').append('<li>' + message + '</li>');
};
IWannaChat.server.send($('#ideaBody').val());
$.connection.hub.start();
} else if (trimmedValue.length === 0) {
alert('empty');
return false;
} else if (trimmedValue === dataValue) {
alert('default');
return false;
}
})
});
});
我想在提交前验证2个字段 - 如果2个字段符合验证要求,那么我想发送消息。我出错的任何想法?
答案 0 :(得分:1)
启动并向集线器发送消息的代码是错误的。
if (trimmedValue.length === 0 && (trimmedValue === dataValue)) {
var IWannaChat = $.connection.myChatHub
IWannaChat.client.addMessage = function (message) {
$('#listMessages').append('<li>' + message + '</li>');
};
IWannaChat.server.send($('#ideaBody').val());
$.connection.hub.start();
}
请注意,您甚至在开始连接之前尝试发布到集线器。
我建议您将代码更改为;
if (trimmedValue.length === 0 && (trimmedValue === dataValue)) {
var IWannaChat = $.connection.myChatHub
IWannaChat.client.addMessage = function (message) {
$('#listMessages').append('<li>' + message + '</li>');
};
$.connection.hub.start().done(function () {
IWannaChat.server.send($('#ideaBody').val());
});
}
这种连接已经启动,只有在完成后才会尝试调用send
方法。
答案 1 :(得分:0)
trimmedValue.length === 0 && (trimmedValue === dataValue)
您可能想要检查这两个是否都是 false ,而不是真实。
或者只是将其移至最终else
。
此外,所有代码都将执行两次;每轮each()
。