0

ユーザーが sendMessage ボタンをクリックした後、検証に合格した場合 (つまり、フィールドにデフォルト値が含まれていないか空である場合) にのみメインのチャット コードを実行するにはどうすればよいですか?

現在、メインのチャット コードは、検証が成功したかどうかに関係なく実行されます。

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

// handling default values and validation

$(function () {
    $('#ideaTitle, #ideaBody').each(function () {
        $.data(this, 'default', this.value);
    }).focus(function () {
        if (!$.data(this, 'edited')) {
            this.value = "";
        }
    }).change(function () {
        $.data(this, 'edited', this.value != "");
    }).blur(function () {
        if (!$.data(this, 'edited')) {
            this.value = $.data(this, 'default');
        }
    });
    $('#sendMessage').click(function () {
        $('#ideaTitle,#ideaBody').each(function () {
            if ($.trim($(this).val()).length === 0) {
                alert('empty');
                return false;
            }
            if ($.trim($(this).val()) === $(this).data('default')) {
                alert('default');
                return false;
            }
        })
    });
});
4

1 に答える 1

2

$("#sendMessage").click を 1 つだけ使用してみることができます。

// main chat code

$(function () {

var IWannaChat = $.connection.myChatHub;

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

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

$.connection.hub.start();
});

// handling default values and validation

$(function () {
$('#ideaTitle, #ideaBody').each(function () {
    $.data(this, 'default', this.value);
}).focus(function () {
    if (!$.data(this, 'edited')) {
        this.value = "";
    }
}).change(function () {
    $.data(this, 'edited', this.value != "");
}).blur(function () {
    if (!$.data(this, 'edited')) {
        this.value = $.data(this, 'default');
    }
});
});
于 2013-07-10T21:23:01.017 に答える