RequiredFieldValidator对列表框不能正常工作

时间:2012-07-06 07:20:53

标签: asp.net listbox requiredfieldvalidator client-side-validation

我的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");

            }
        }

1 个答案:

答案 0 :(得分:0)

菜式:                        
      <asp:RequiredFieldValidator ID="CuisineTypeReqFieldValid" InitialValue="-1" Display="dynamic" runat="server" ControlToValidate="CuisineType">
      <div class="SearchFormRow">
        <span class="SearchFormRowLabel">&nbsp;</span>
        <span class="SearchFormRowField">You must select at least 1 item from the list!</span>
      </div>
      </asp:RequiredFieldValidator>