我在自定义下拉列表DD1和DD2上编写验证,但是当它检查DD1并返回false时,它不会检查DD2。你能建议我吗?
在下面的脚本中,我调用Validatechecked函数,它检查下拉列表是否选择了值,它只适用于一个下拉列表。如何让它超过2个下拉菜单?
<script type="text/javascript" language="javascript">
function Validatechecked(val) {
var selectedItems = "";
$('[id*='+val+']'+" "+ "input:checked").each(function () {
if (selectedItems == "") {
selectedItems = "Selected Items:\r\n\r\n";
}
selectedItems += $(this).next().html() + "\r\n";
});
if (selectedItems == "") {
selectedItems = "";
return false;
}
else {
selectedItems = "";
return true;
}
}
$(document).ready(function () {
$('[id*="InsertNSTBtn"]').click(function () {
if (!Validatechecked("DD1")) {
$('#<%=valid1.ClientID%>').html("*");
return false;
}
if (!Validatechecked("DD2")) {
$('#<%=Valid1.ClientID%>').html("*");
return false;
}
});
});
答案 0 :(得分:2)
不要立即返回false,而是将布尔变量设置为false并返回:
$('[id*="InsertNSTBtn"]').click(function () {
var passtest = true;
if (!Validatechecked("DD1")) {
$('#<%=RMktallocvalid.ClientID%>').html("*");
passtest = false;
}
if (!Validatechecked("DD2")) {
$('#<%=SrvRgnMDDValid.ClientID%>').html("*");
passtest = false;
}
/* add more tests if you like */
return passtest;
});