jquery如果别的,为什么不起作用?

时间:2010-04-26 15:25:45

标签: jquery if-statement

在下面的函数中,它会通过if和else,为什么会这样?

function test(){
        $(".notEmpty").each(function() {
         if($(this).val() === ""){
            alert("Empty Fields!!");
            return;
           }
         else{
                AddRow_OnButtonClick('tblMedicationDetail',6);
              }
     });

}

是否有关于jquery的if和else声明我不知道?

AddRow_OnButtonClick是一个添加6个文本框的新行的函数,我附加了一个className'notEmpty',如果任何文本框为空,则不应调用函数AddRow_OnButtonClick并弹出警报。

我不知道我做错了什么。

由于

4 个答案:

答案 0 :(得分:3)

return语句仅从提供给.each的函数返回。我怀疑你遇到的问题是你想从test()返回。实际上,从内部函数返回后,您仍然会将内部函数应用于其余元素。

如果我是对的,并且您希望完全脱离.each(),请改为return falsesee jQuery docs)。

答案 1 :(得分:1)

结合现有的两个答案让我相信这会有效:

var emptyFields = false;

function test(){
    emptyFields = false;
    $(".notEmpty").each(function() {
        if($.trim($(this).val()) == "") {
            emptyFields = true;
            return false; // break out of the each-loop
        } 
    });
    if (emptyFields) {
        alert("Empty Fields!!");
    } else {
        AddRow_OnButtonClick("tblMedicationDetail",6);
    }
}

基本思路是您需要使用.each调用来确定某个字段是否为空。在此之后,您可以使用if else声明来处理信息。

答案 2 :(得分:0)

我已经构建了代码以使其更具可读性,但我不确定为什么 if else 都被调用:< / p>

function test(){
    $(".notEmpty").each(function() {
        if($(this).val() === ""){
            alert("Empty Fields!!");
            return;
        } else {
            AddRow_OnButtonClick("tblMedicationDetail",6);
        }
    });
}

答案 3 :(得分:0)

if($(this).val() == ""){

2等于不是3的标志 - 那可能是你的问题......?