如何在JavaScript循环中提醒一次

时间:2011-08-30 14:25:43

标签: javascript jquery loops

代码:在下面显示的代码中,警告消息一直循环直到语句结束。我需要一个警告语句只提醒一次。如何实现这一目标?

这里正在检查复选框的输出,如果未选中它则显示未定义

 for(j=1;j<=numOflimit;j++)
    {
      var select = $("input[name=select+j]:checked").val();
        //alert (select);
        //$check='undefined';


        if(select==undefined)

        {
            alert ("Please select atleast one product");
        }
        else
        {
            var postData    =   $("form").serialize();//"product_name="+product_name+"&barcode="+barcode+"&Quantity"+Quantity;
            $.ajax
            ({
               type: 'POST',
                url: 'http://localhost/example/index.php/castoutput',                      
                data: postData,
                success: function(html) {
                    // alert(html);
                    $('#cast2').html(html); 
                }
         });
        }
   }

6 个答案:

答案 0 :(得分:6)

你可以创建一个真或假的变量,如果警报已被触发,一旦将其置于假&amp;检查if,如果是真或假。

if (showAlert==true)
{
   alert ("Please select atleast one product");
   showAlert = false;
}

答案 1 :(得分:2)

你在这里使用的是字符串而不是串联:

$("input[name=select+j]:checked").val();

您需要在引号

之外放置
$("input[name=select"+j+"]:checked").val();

否则总是未定义。

顺便问一下,为什么你还需要在这里循环?

答案 2 :(得分:2)

绝对没有理由循环输入元素以确定是否检查了它们中的任何一个。由于您已经使用了:checked选择器,只需检查匹配的元素集的长度 - 它非常简单:

var $checked = $("input[type='checkbox']:checked");

// If none of the checkboxes are checked, alert to the user
if ( !$checked.length ) {

    alert("Please select atleast one product");

} else {

    // do ajax post stuff here.

}

答案 3 :(得分:0)

试试这个

if(typeof(select)=='undefined')

如果您需要提醒一次 - 请使用您的j计数器

if (j==1) {alert('')}

答案 4 :(得分:0)

据我所知,你也不想做else语句,所以没有让for循环运行。只需使用:

if(select==undefined)
        {
            alert ("Please select atleast one product");
            j = numOflimit+1;
        }

答案 5 :(得分:0)

你是否尝试让它退出for循环到另一个抛出错误的函数,如果它等于undefined,因为它看起来像你只是想提交表单。所以只需将它从undefined退出到一个函数,该函数会抛出一个警告,说出你喜欢的任何内容。