0

最初の 2 つの条件が 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 に答える