我的asp.net页面上有一个列表框,我使用了rquiredfieldvalidation。 问题是当列表框填写在特定的下拉列表选项上时,在这种情况下不会自动选择任何成员。在保存单击时,它被视为空,验证仍然显示。
只有当我明确选择一个成员时才会进行验证并且我可以保存。
我尝试使用javascript函数在我的保存按钮的OnCLientClick上自动选择第一个成员。但问题是当我将成员从另一个列表框移动到此列表框时,已经选择了一个成员。之后我的函数调用选择另一个member.Thus two被选中,在这种情况下它是错误的。
这是使用的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");
}
}
答案 0 :(得分:0)
<asp:RequiredFieldValidator ID="CuisineTypeReqFieldValid" InitialValue="-1" Display="dynamic" runat="server" ControlToValidate="CuisineType">
<div class="SearchFormRow">
<span class="SearchFormRowLabel"> </span>
<span class="SearchFormRowField">You must select at least 1 item from the list!</span>
</div>
</asp:RequiredFieldValidator>