Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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函数显然没有被调用?_Javascript_C#_Html_Asp.net - Fatal编程技术网

为什么我的JavaScript函数显然没有被调用?

为什么我的JavaScript函数显然没有被调用?,javascript,c#,html,asp.net,Javascript,C#,Html,Asp.net,这个JavaScript函数以前是可以工作的,直到我试图将更多的错误检查推到前端,使它变得更复杂 以下是前端代码,只是为了简洁起见的重要部分: <body> <form id="form1" runat="server"> <div> <script type = "text/javascript" > function checkThings() {

这个JavaScript函数以前是可以工作的,直到我试图将更多的错误检查推到前端,使它变得更复杂

以下是前端代码,只是为了简洁起见的重要部分:

    <body>
        <form id="form1" runat="server">
        <div>
     <script type = "text/javascript" >
         function checkThings()
         {
             var jobSeekerFirstName = document.getElementsByName('txtJobSeekerFirstName')[0].value
             var jobSeekerLastName = document.getElementsByName('txtJobSeekerLastName')[0].value
             var jobSeekerUserName = document.getElementsByName('txtJobSeekerUserName')[0].value
             var jobSeekerPassword = document.getElementsByName('txtJobSeekerPassword')[0].value
             var jobSeekerPhoneNumber = document.getElementsByName('txtJobSeekerPhoneNumber')[0].value
             var jobSeekerEmail = document.getElementsByName('txtJobSeekerEmailAddress')[0].value
             var jobSeekerAnswer = document.getElementsByName('txtJobSeekersSecurityAnswer')[0].value
             if ((jobSeekerFirstName != '') && (jobSeekerLastName != '') && (jobSeekerUserName != '') &&
                 (jobSeekerPassword != '') && (jobSeekerPhoneNumber != '') && (jobSeekerEmail != '') &&
                 (jobSeekerAnswer != '')) // First check all fields entered
             {
                 if (jobSeekerUserName.length == 6) {
                     var emAddrCounter;
                     var emlength = jobSeekerEmail.length;
                     var emailCorrect = false;
                     for (emAddrCounter = 0; ((emAddrCounter < emlength) && (emailCorrect == false)) ; emAddrCounter++) {
                         var emChar = jobSeekerEmail.charAt(emAddrCounter);
                         if (emChar == '@') emailCorrect = true;
                     }
                     if (emailCorrect == false) {
                         var emailNoAtChar = " Email address must contain @ character. Please reenter";
                         document.getElementsById('txtMessageBox').Text = emailNoAtChar;
                         return false;
                     }
                     else {
                         return true;
                     }
                 }
                 else
                 {
                     var userNameNotSix = " User name must be exactly six characters long. Please reenter";
                     document.getElementsByName('txtMessageBox').Text = userNameNotSix;
                     return false;
                 }
             }
             else
             {
                 var allElementsPresent = " All Fields must be filled in first. Please reenter all fields";
                 document.getElementsById('txtMessageBox').Text = allElementsPresent;
                 return false;
             }
         }
    </script>
<asp:ScriptManager ID="scripman1" runat="server" EnablePageMethods="True">
</asp:ScriptManager>

函数checkThings()
{
var jobSeekerFirstName=document.getElementsByName('txtJobSeekerFirstName')[0]。值
var jobSeekerLastName=document.getElementsByName('txtJobSeekerLastName')[0]。值
var jobSeekerUserName=document.getElementsByName('txtJobSeekerUserName')[0]。值
var jobSeekerPassword=document.getElementsByName('txtJobSeekerPassword')[0]。值
var jobSeekerPhoneNumber=document.getElementsByName('txtJobSeekerPhoneNumber')[0]。值
var jobSeekerEmail=document.getElementsByName('txtJobSeekerEmailAddress')[0]。值
var jobSeekerAnswer=document.getElementsByName('txtJobSeekersSecurityAnswer')[0]。值
如果((jobSeekerFirstName!='')和&(jobSeekerLastName!='')和&(jobSeekerUserName!='')&&
(jobSeekerPassword!='')和&(jobSeekerPhoneNumber!='')和&(jobSeekerEmail!='')&&
(jobSeekerAnswer!='')//首先检查输入的所有字段
{
if(jobSeekerUserName.length==6){
变量计数器;
var emlength=jobSeekerEmail.length;
var=correct=false;
对于(emAddrCounter=0;((emAddrCounter
电话线

 <asp:Button ID="btnNewJobSeekerRegistration" runat="server" 
             Text=" Register me as a new Job Seeker " 
             OnClientClick= "return checkThings();"
             OnClick="btnNewJobSeekerRegistration_Click" />

我一直在

操作完成


它似乎跳过了所有JavaScript函数和其中的所有错误检查。有什么想法吗?

当您的JavaScript代码“没有被调用”时,通常是因为代码有问题。当JavaScript的任何一行抛出异常时,请记住此JavaScript代码不是编译的,而是在运行时立即解释和执行的,我猜下面的每一位代码都会被跳过,后端的codebehind会自动执行。要调试它,您需要在浏览器的调试器中打开开发人员控制台。对我来说,这是Chrome,所以请转到:定制和控制Google Chrome/更多工具/开发人员工具(或Ctrl+Shift+i),然后转到控制台。现在从VisualStudio中运行代码,并观察JavaScript代码中引发的异常或错误。对我来说,这个错误是“JobSeekerRegistration.aspx:100未捕获类型错误:document.getElementsById不是函数”。我当时所做的只是将两行代码中的document.getElementsById更改为document.getElementsByName,瞧,它成功了。特别感谢亚里士多德,但我的答案是最好的。

你能不能也发布你的html代码以更好地理解它,可能是因为你在javascript上有一些错误,在抛出错误后,按钮继续发回,你错过了它。。。打开浏览器上的控制台,查看错误是什么您的JavaScript充满了错误。尝试在没有asp.net按钮的情况下调试它,这样就不会有回发。@VDWWD您的JavaScript充满错误,但不会告诉我这些错误是什么。你能指定一个你在那里看到的错误吗。如果没有asp.net按钮,如何调试它??我的想法是,它根本没有被调用,而是有错误。我会查看一下。我看到的唯一“错误”是javascript中的var语句没有用这个符号终止;“我返回并正确终止了它们,仍然是相同的行为,函数没有被调用,它直接进入后端codebehind函数,在不执行javascript的情况下执行它。我觉得很奇怪。