Jquery 难以将信号器代码合并到if语句中
我试图合并以下代码Jquery 难以将信号器代码合并到if语句中,jquery,signalr,Jquery,Signalr,我试图合并以下代码 // main chat code $(function () { var IWannaChat = $.connection.myChatHub; IWannaChat.client.addMessage = function (message) { $('#listMessages').append('<li>' + message + '</li>');
// 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();
});
//主要聊天代码
$(函数(){
var IWannaChat=$.connection.myChatHub;
IWannaChat.client.addMessage=函数(消息){
$('#listMessages')。追加(''+message+' ');
};
$(“#发送消息”)。单击(函数(){
IWannaChat.server.send($('#ideaBody').val());
});
$.connection.hub.start();
});
进入下面的功能,但它似乎不再工作(请注意,下面的功能显示当前项目状态)
$(函数(){
$(“#发送消息”)。单击(函数(){
$('#ideaTitle,#ideaBody')。每个(函数(){
变量$this=$(this),
currValue=此.value,
trimmedValue=$.trim(currValue),
dataValue=$this.data('default');
如果(trimmedValue.length==0&&(trimmedValue==dataValue)){
var IWannaChat=$.connection.myChatHub
IWannaChat.client.addMessage=函数(消息){
$('#listMessages')。追加(''+message+' ');
};
IWannaChat.server.send($('#ideaBody').val());
$.connection.hub.start();
}else if(trimmedValue.length==0){
警报(“空”);
返回false;
}else if(trimmedValue==数据值){
警报(“默认”);
返回false;
}
})
});
});
我试图在提交前验证两个字段-如果这两个字段满足验证要求,那么我想发送消息。你知道我哪里出错了吗
trimmedValue.length === 0 && (trimmedValue === dataValue)
您可能想检查这两个是否都是假的,而不是真的
或者只需将其移动到最后一个或
而且,所有这些代码都将执行两次;每轮each()
一次,您启动并向集线器发送消息的代码是错误的
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=函数(消息){
$('#listMessages')。追加(''+message+' ');
};
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());
});
}
if(trimmedValue.length==0&&(trimmedValue==dataValue)){
var IWannaChat=$.connection.myChatHub
IWannaChat.client.addMessage=函数(消息){
$('#listMessages')。追加(''+message+' ');
};
$.connection.hub.start().done(函数(){
IWannaChat.server.send($('#ideaBody').val());
});
}
通过这种方式,连接已经启动,并且只有在连接完成后,它才会尝试调用发送
方法。@SLaks如果满足所有验证要求,则不会发送消息。。。如果出现问题,我会收到警报,但如果一切正常,什么也不会发生。有更好的方法吗?
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());
});
}