我試圖檢查以確保中繼器的頁腳中的某些字段在嘗試向中繼器添加一行時不是空白。我試圖通過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來重複使用其他表的代碼。它在至少 –