jQuery,否则如果不工作

时间:2013-10-29 13:48:46

标签: javascript jquery ajax

我正在使用.ajax将数据发送到我的数据库。我有两个领域。我想检查是否为空,如果是,则显示错误。第一个如果工作正常。该消息显示,但是否则不显示。可能是我的问题?我对javascript和iquery不太熟悉。

$.ajax({
    type: "POST",
    url: "submit.php",
    data: data,
    cache: false,
     beforeSend: function() {
        if (!$.trim($("#cat").val())) {
            $(".fb-error").css( "display", "block" );
            $(".fb-error").html("<p>the cat field is empty</p>");
            xhr.abort();
        }

        else if (!$.trim($("#box").val())) {
            $(".fb-error").css( "display", "block" );
            $(".fb-error").html("<p>the box field is empty</p>");
            xhr.abort();
        }
    },
    success: function(html){
        $('textarea#box').val('');
        $("#box-wrap").prepend(html);
    }
});

5 个答案:

答案 0 :(得分:4)

如果要检查两种情况,则无法使用else

var error = '';

if (!$.trim($("#cat").val())) {
        error = "<p>the cat field is empty</p>";
}

if (!$.trim($("#box").val())) {
        error += "<p>the box field is empty</p>";
}

if (error) {
        $(".fb-error").html(error);
        $(".fb-error").css( "display", "block" );
        xhr.abort();
}

在第二个if中,您必须附加新的html,以防止覆盖已添加的消息。

答案 1 :(得分:2)

为每个条件使用单独的if语句; else if仅在第一个if失败时运行。使用变量来累积消息。

 beforeSend: function() {
    var msg = '';
    if (!$.trim($("#cat").val())) {
        $(".fb-error").css( "display", "block" );
        msg = "<p>the cat field is empty</p>";
        xhr.abort();
    }
    if (!$.trim($("#box").val())) {
        $(".fb-error").css( "display", "block" );
        msg += "<p>the box field is empty</p>";
        xhr.abort();
    }
    $(".fb-error").html(msg);
},

答案 2 :(得分:2)

我将错误放在一个数组中,如果它不是空的则显示它们

var errors = [];
if (!$.trim($("#cat").val())) {
    errors.push("<p>the cat field is empty</p>");
}

if (!$.trim($("#box").val())) {
    errors.push("<p>the box field is empty</p>");
}

if(errors.length){
    $(".fb-error").css( "display", "block" ).html(errors.join(''));
    xhr.abort();
}

答案 3 :(得分:1)

合并:

var error = false;
if (!$.trim($("#cat").val())) {
        $(".fb-error").append("<p>the cat field is empty</p>");
        error = true;
}

if (!$.trim($("#box").val())) {
        $(".fb-error").append("<p>the box field is empty</p>");
        error = true;
}

if (error) {
        xhr.abort();
        $(".fb-error").css( "display", "block" );
}

答案 4 :(得分:-2)

调试可以切换#box和#cat吗?

您正在使用其他内容,因此如果#cat为空,您将看不到消息“框字段为空”。如果#cat不为空,并且#box为。

,它将仅显示此消息

将#box更改为您知道不存在(并且不存在)的内容。也许它有价值。

你可以将#cat和#box的值输出到控制台,以确保它们是空的。

的console.log( “$修剪($(” #猫 “)VAL()=”。+ $修剪($( “#猫”)VAL())。。 的console.log( “$修剪($(” #盒 “)VAL()=”。+ $修剪($( “#盒”)VAL());