Javascript 为什么这个JS确认窗口没有在表单提交时启动?
HTML:Javascript 为什么这个JS确认窗口没有在表单提交时启动?,javascript,forms,submit,confirm,Javascript,Forms,Submit,Confirm,HTML: <form name="registerAppointment" method="post" action="formValidations/deleteValidate.php" onSubmit="return verifyForm()"> <input type="hidden" name="userEmail" value="<?=$_SESSION['Mail']?>" /> <input type="text" r
<form name="registerAppointment" method="post" action="formValidations/deleteValidate.php" onSubmit="return verifyForm()">
<input type="hidden" name="userEmail" value="<?=$_SESSION['Mail']?>" />
<input type="text" required name="studentId" size="20"/>
<div class="pageFormResetSubmit">
<input type="reset" value="Reset" />
<input type="submit" value="Submit" />
</div>
</form>
function verifyForm() {
if (document.addStudentForm.elements["studentId"].value.length == 9) {
if (isNaN(document.addStudentForm.elements["studentId"].value)) {
alert("Please enter only numbers for ID - no dashes or letters.");
return false;
}else{
if( window.confirm("Are you sure you want to delete this student? This action CANNOT BE UNDONE.") ){
studentIdField.setAttribute("value", document.addStudentForm.elements["studentId"].value);
userForm.appendChild(studentIdField);
document.body.appendChild(userForm);
userForm.submit();
}
}
}
else{
alert("The ID must be 9 characters.");
return false;
}
};
当点击
submit
按钮时,我希望出现一个确认对话框,允许他们确认或取消。无论出于何种原因,确认没有在上述代码中触发,表单处理时就好像它不在那里一样。您使用了错误的表单名称:
document.addStudentForm
应该是document.registerappoint
您收到警报了吗?你收到了哪个警报?只是猜测一下,isNaN(document.addStudentForm.elements[“studentId”].value)
应该是(document.addStudentForm.elements[“studentId”].value!=未定义)
@RobM。他们试图检查某个东西是否是数字,因此,isNaN
sorta实现了他们想要的。例如,isNaN(未定义)==true
和isNaN(“123”)==false
。该函数的使用不是很好(请参阅它被破坏的原因),但我不认为这是一个错误…我知道,isNaN
是一个糟糕的函数,我的意思是考虑到NaN是一个常数,你会认为“is NaN”只会是==NaN
。无论如何,谢谢你指出这一点。@RobM。我没有收到任何警告,表单正在提交,就好像它不在那里一样。基本上,第一个if()
检查长度是否足够。然后,它检查以确保我们使用的是一个数字(如果不是,脚本将返回false
)。否则,这是一个9个字符长的数字,我想确认他们想要删除。如果他们单击“是”,则提交表单。否则,像上面的返回false
行一样取消它。有人吗?我想这是一个简单的解决办法,我只是瞥了一眼…你太棒了。不知道我怎么没注意到。我猜是漫长的编码日。:)谢谢