Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有onchange事件的ASP.net验证程序问题_Javascript_Asp.net_Requiredfieldvalidator - Fatal编程技术网

Javascript 带有onchange事件的ASP.net验证程序问题

Javascript 带有onchange事件的ASP.net验证程序问题,javascript,asp.net,requiredfieldvalidator,Javascript,Asp.net,Requiredfieldvalidator,我正在研究我正在开发的一个基于web的应用程序的就业历史。应该发生什么: 如果用户输入第二家公司的公司名称,则第二家公司的某些其他字段将成为必填字段。如果第二个公司名称留空,则其他字段验证程序将保持禁用状态 在大多数情况下,这是没有任何问题的工作;然而,当有人在第二个“公司名称”框中输入某个内容并单击“下一步”时,它会激活验证器。如果这是不正确的,并且他们删除了在第二个公司名称框中键入的任何内容,则不会再次禁用验证程序 我在文本框中使用了一个onchange事件,它调用一个javascript函

我正在研究我正在开发的一个基于web的应用程序的就业历史。应该发生什么:

如果用户输入第二家公司的公司名称,则第二家公司的某些其他字段将成为必填字段。如果第二个公司名称留空,则其他字段验证程序将保持禁用状态

在大多数情况下,这是没有任何问题的工作;然而,当有人在第二个“公司名称”框中输入某个内容并单击“下一步”时,它会激活验证器。如果这是不正确的,并且他们删除了在第二个公司名称框中键入的任何内容,则不会再次禁用验证程序

我在文本框中使用了一个onchange事件,它调用一个javascript函数来启用和禁用验证器,我不确定它为什么不起作用

这是我正在验证的文本框。如蒙协助,将不胜感激

谢谢

  <asp:TextBox ID="txtCompany2" runat="server" onchange="validateCompany3()" />
    <asp:RequiredFieldValidator ID="rfvCompany2" runat="server"
            ControlToValidate="txtCompany2"
            errormessage="Please indicate which company you worked for."
            Enabled="false"
            ForeColor="Red"
            Text="*">
   </asp:RequiredFieldValidator> 

这是我的javascript

function validateCompany2(source, args) {
    var company = document.getElementById("<%=txtCompany2.ClientID %>");
    var valCompany2 = document.getElementById("<%=rfvCompany2.ClientID %>");
    var valCompany2City = document.getElementById("<%=rfvCompany2City.ClientID %>");
    var valCompany2State = document.getElementById("<%=rfvCompany2State.ClientID %>");
    var valCompany2Phone = document.getElementById("<%=rfvCompany2Phone.ClientID %>");
    var valCompany2Supervisor = document.getElementById("<%=rfvCompany2Supervisor.ClientID %>");
    var valCompany2Start = document.getElementById("<%=rfvCompany2StartDate.ClientID %>");
    var valCompany2End = document.getElementById("<%=rfvCompany2EndDate.ClientID %>");
    var valCompany2Job = document.getElementById("<%=rfvCompany2JobTitle.ClientID %>");
    var valCompany2StartSal = document.getElementById("<%=rfvCompany2StartingSalary.ClientID %>");
    var valCompany2EndSal = document.getElementById("<%=rfvCompany2EndingSalary.ClientID %>");
    var valCompany2Resp = document.getElementById("<%=rfvCompany2Responsibilities.ClientID %>");
    var valCompany2Reason = document.getElementById("<%=rfvCompany2ReasonForLeaving.ClientID %>");

    if (company == "" || company == null || company.value == null)
    {
        ValidatorEnable(valCompany2, false);
        ValidatorEnable(valCompany2City, false);
        ValidatorEnable(valCompany2State, false);
        ValidatorEnable(valCompany2Phone, false);
        ValidatorEnable(valCompany2Supervisor, false);
        ValidatorEnable(valCompany2Start, false);
        ValidatorEnable(valCompany2End, false);
        ValidatorEnable(valCompany2Job, false);
        ValidatorEnable(valCompany2StartSal, false);
        ValidatorEnable(valCompany2EndSal, false); 
        ValidatorEnable(valCompany2Resp, false);
        ValidatorEnable(valCompany2Reason, false);
    }
    else 
    {
        ValidatorEnable(valCompany2, true);
        ValidatorEnable(valCompany2City, true);
        ValidatorEnable(valCompany2State, true);
        ValidatorEnable(valCompany2Phone, true);
        ValidatorEnable(valCompany2Supervisor, true);
        ValidatorEnable(valCompany2Start, true);
        ValidatorEnable(valCompany2End, true);
        ValidatorEnable(valCompany2Job, true);
        ValidatorEnable(valCompany2StartSal, true);
        ValidatorEnable(valCompany2EndSal, true); 
        ValidatorEnable(valCompany2Resp, true);
        ValidatorEnable(valCompany2Reason, true);
    }
}
函数validateCompany2(源代码,参数){
var company=document.getElementById(“”);
var valCompany2=document.getElementById(“”);
var valCompany2City=document.getElementById(“”);
var valCompany2State=document.getElementById(“”);
var valCompany2Phone=document.getElementById(“”);
var valCompany2Supervisor=document.getElementById(“”);
var valCompany2Start=document.getElementById(“”);
var valCompany2End=document.getElementById(“”);
var valCompany2Job=document.getElementById(“”);
var valCompany2StartSal=document.getElementById(“”);
var valCompany2EndSal=document.getElementById(“”);
var valCompany2Resp=document.getElementById(“”);
var valCompany2Reason=document.getElementById(“”);
if(company==“”| | company==null | | company.value==null)
{
ValidatorEnable(valCompany2,false);
ValidatorEnable(Valcompany2城市,false);
ValidatorEnable(valCompany2State,false);
ValidatorEnable(valCompany2Phone,false);
ValidatorEnable(valCompany2Supervisor,false);
ValidatorEnable(valCompany2Start,false);
ValidatorEnable(valCompany2End,false);
ValidatorEnable(valCompany2Job,false);
ValidatorEnable(valCompany2StartSal,false);
ValidatorEnable(ValcompanyEndsal,false);
ValidatorEnable(valCompany2Resp,false);
ValidatorEnable(valCompany2Reason,false);
}
其他的
{
ValidatorEnable(valCompany2,true);
ValidatorEnable(valCompany2City,true);
ValidatorEnable(valCompany2State,true);
ValidatorEnable(valCompany2Phone,true);
ValidatorEnable(valCompany2Supervisor,true);
ValidatorEnable(valCompany2Start,true);
ValidatorEnable(valCompany2End,true);
ValidatorEnable(valCompany2Job,true);
ValidatorEnable(valCompany2StartSal,true);
ValidatorEnable(valCompany2EndSal,true);
ValidatorEnable(valCompany2Resp,true);
ValidatorEnable(valCompany2Reason,true);
}
}

您的onchange显示validateCompany3,但您发布的代码是validateCompany2。打字错误?我不小心从这里的第三公司复制了文本框。我纠正了它。谢谢,你能发布这个方法吗,ValidatorEnable()?您是否尝试向其添加警报以确保正在调用它?还要检查控制台,确保没有错误。好建议。我没有考虑添加警报以进行验证。使用警报,我成功地追踪到问题所在。我把每个有“company”的地方都改成了“company.value”,现在可以用了。