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());
        });
    }