我的asp.net 页面上有一个列表框,我使用了rquiredfieldvalidation。问题是当列表框在特定的下拉选择中填充时,在这种情况下不会自动选择任何成员。在保存单击时,它被视为空并且仍然显示验证。
只有当我明确选择一个成员时,验证才会进行并且我能够保存。
我尝试使用javascript函数在我的保存按钮的OnCLientClick上自动选择第一个成员。但是问题是当我将成员从另一个列表框移动到这个列表框时,已经选择了一个成员。之后我的函数调用选择了另一个成员。因此选择了两个,在这种情况下,它会出错。
这是使用的javascript函数:
function FunSelect()
{
var objRequiredFunctionalities = document
.getElementById("<%=lbCurrentFunc.ClientID%>");
if (objRequiredFunctionalities.selectedIndex > 0 ||
objRequiredFunctionalities.options.length > 0) {
objRequiredFunctionalities.options[0].selected = true;
}
}
这是将项目从一个列表框移动到我已验证的列表框的代码
function ShiftToRight() {
var objSource = document.getElementById("<%=lbAllFunc.ClientID%>");
var objRequiredFunctionalities = document.getElementById("<%=lbCurrentFunc.ClientID%>");
if (objSource.selectedIndex < 0 || objSource.options.length < 0) {
alert("Select Item in Left List to move.");
return;
}
var flag = 0;
for (var i = 0; i < objSource.options.length; i++) {
if (objSource.options[i].selected) {
var item = objSource.options[i];
i--;
for (var i = 0; i < objRequiredFunctionalities.options.length; i++) {
if (item.value == objRequiredFunctionalities.options[i].value)
flag = 1;
}
if (flag == 0) {
if (navigator.appName == 'Netscape') {
objRequiredFunctionalities.options.add(item);
}
else {
objRequiredFunctionalities.options.appendChild(item);
}
}
else alert("Selected item already exists in the Current Functionalities");
}
}