0

如果前两个条件返回 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();
        })

    });
});
4

3 回答 3

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 语句

于 2013-07-09T21:39:42.157 回答
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();
        }
    })

});
于 2013-07-09T21:49:16.890 回答
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;
    });
});

就个人而言,我觉得这更具可读性。

于 2013-07-09T21:43:19.030 回答