【发布时间】:2017-02-17 05:41:51
【问题描述】:
这个 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>
电话线
<asp:Button ID="btnNewJobSeekerRegistration" runat="server"
Text=" Register me as a new Job Seeker "
OnClientClick= "return checkThings();"
OnClick="btnNewJobSeekerRegistration_Click" />
我一直在努力
操作完成
它似乎跳过了所有的 JavaScript 函数和其中的所有错误检查。有什么想法吗?
【问题讨论】:
-
你能把你的html代码也贴出来更好地理解
-
这可能是因为您在 javascript 上遇到了一些错误,并且在引发错误后,按钮继续回发,但您错过了它...在浏览器上打开控制台以查看错误是什么
-
您的 JavaScript 充满了错误。尝试在没有 asp.net 按钮的情况下对其进行调试,这样就不会有 PostBack。
-
@VDWWD 您的 JavaScript 充满了错误并不能告诉我这些错误是什么。你能指定一个你在那里看到的错误吗?如何在没有 asp.net 按钮的情况下调试它?我的想法是它根本没有被调用,而不是有错误。我会看的。
-
我看到的唯一“错误”是javascript中的var语句没有以这个符号“;”终止我返回并正确终止了它们,仍然没有调用该函数的相同行为,它直接进入后端代码隐藏函数以在不执行 JavaScript 的情况下执行它。我觉得很奇怪。
标签: javascript c# html asp.net