如果前两个条件返回true,则获取if语句的最后一个条件

时间:2013-07-09 21:36:55

标签: jquery signalr

如果前两个条件返回true,我将如何获取if语句的最后一部分:

这是我的代码:

// main chat code

$(function () {

    var IWannaChat = $.connection.myChatHub;

    IWannaChat.client.addMessage = function (message) {
        $('#listMessages').append('<li>' + message + '</li>');
    };

    $("#sendMessage").click(function () {
        $('#ideaTitle,#ideaBody').each(function () {
            if ($.trim($(this).val()).length === 0) {
                alert('empty');
                return false;
            }
            else if ($.trim($(this).val()) === $(this).data('default')) {
                alert('default');
                return false;
            }
            IWannaChat.server.send($('#ideaBody').val());
            $.connection.hub.start();
        })

    });
});

3 个答案:

答案 0 :(得分:2)

$("#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)) {
            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状态网络

答案 1 :(得分:1)

你可以自己回复条件:

$("#sendMessage").click(function () {
    $('#ideaTitle,#ideaBody').each(function () {
        var empty = $.trim($(this).val()).length === 0,
            def = $.trim($(this).val()) === $(this).data('default');
        if (empty) {
            alert('empty');
        }
        else if (def) {
            alert('default');
        }
        IWannaChat.server.send($('#ideaBody').val());
        $.connection.hub.start();
        return !empty && !def;
    });
});

就个人而言,我发现这更具可读性。

答案 2 :(得分:1)

使用变量来跟踪是否满足早期条件。

$("#sendMessage").click(function () {
    $('#ideaTitle,#ideaBody').each(function () {
        var doit = true;
        if ($.trim($(this).val()).length === 0) {
            alert('empty');
            doit = true;
        }
        else if ($.trim($(this).val()) === $(this).data('default')) {
            alert('default');
            doit = true;
        }
        if (doit) {
            IWannaChat.server.send($('#ideaBody').val());
            $.connection.hub.start();
        }
    })

});