代码:在下面显示的代码中,警告消息一直循环直到语句结束。我需要一个警告语句只提醒一次。如何实现这一目标?
这里正在检查复选框的输出,如果未选中它则显示未定义
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);
}
});
}
}
答案 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退出到一个函数,该函数会抛出一个警告,说出你喜欢的任何内容。