我试图检查以确保中继器的页脚中的某些字段在尝试向中继器添加一行时不是空白。我试图通过JavaScript来验证这一点,可重复使用的代码为几个不同的中继器(通过滥用的ID):在javascript中返回false后仍然回发错误
switch (category)
{
case 'Hardware':
if ($("#HWtable").find("#AddProduct").val() == null ||
$("#HWtable").find("#AddPartNumber").val() == null ||
$("#HWtable").find("#AddPartCost").val() == null ||
$("#HWtable").find("#AddUnitPrice").val() == null ||
$("#HWtable").find("#AddQuantity").val() == null)
{
alert("show HW message");
HWEmptyFieldAlert.show();
return false;
}
break;
的问题是,它仍然是回发,即使我有返回假那里。我也包括在我的clientclick电话:
onClientClick="return EmptyFieldCheck('Hardware');"
如果我注释掉的开关,只是说返回false,一切正常。我最好的猜测是,我刚刚退出if或switch,而不是回发。我如何正确地做到这一点?
编辑:根据以下其他人的建议,我尝试了一个标志,并在客户端单击时反转了真/假状态。现在我现在有下面仍然张贴回来,我真的不知道为什么。当我点击时,我确实看到了警报,所以它变得如此遥远。
var emptyFlag;
switch (category)
{
case 'Hardware':
/*
if ($("#HWtable").find("#AddProduct").val() == null ||
$("#HWtable").find("#AddPartNumber").val() == null ||
$("#HWtable").find("#AddPartCost").val() == null ||
$("#HWtable").find("#AddUnitPrice").val() == null ||
$("#HWtable").find("#AddQuantity").val() == null)
{
*/
alert("show HW message");
HWEmptyFieldAlert.show();
emptyFlag = false;
//}
break;
default:
alert("doesn't work");
return false;
break;
}
return emptyFlag;
这是否与我使用中继器的OnItemCommand功能有关?返回false而不是emptyFlag不再有效。 OnClientClick =“返回false;”尽管停止回发。
你知道'id's必须是** unique **作为每个文档吗?如果你这样做了,你会发现'$(“#HWProduct”)。find(“#AddProduct”)总是和$(“#AddProduct”)一样。 – connexo
只有空的选择有一个val()null –
@connexo这不会在HWTable中寻找#AddProduct吗?那是我的意图。我有几个其他表具有相同的行。我提到我滥用ID来重复使用其他表的代码。它在至少 –