【发布时间】:2013-12-05 18:23:50
【问题描述】:
HTML:
<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>
Javascript:
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 按钮被点击时,我希望出现一个确认对话框,允许他们确认或取消。无论出于何种原因,上述代码中的确认都没有触发,并且表单处理时就好像它不存在一样。
【问题讨论】:
-
您收到警报了吗?你收到哪个警报?只是猜测,但
isNaN(document.addStudentForm.elements["studentId"].value)应该是(document.addStudentForm.elements["studentId"].value != undefined) -
@RobM。他们试图检查某个东西是否是数字,所以
isNaNsorta 完成了他们想要的。例如,isNaN(undefined) == true和isNaN("123") == false。该功能的用途不是很好(请参阅here,因为某些原因它已损坏)但我认为这不是错误... -
我明白了,
isNaN是一个糟糕的函数,我的意思是考虑到 NaN 是一个常数,你会认为“是 NaN”只会是=== NaN。无论如何,感谢您指出这一点。 -
@RobM。我没有收到任何警报,表单正在提交,就好像它不存在一样。基本上第一个
if()正在检查是否有足够的长度。然后,它会检查以确保我们正在使用数字(如果不是,则脚本返回false)。否则,这是一个 9 字符长的数字,我想confirm他们要删除。如果他们单击是,请提交表单。否则像上面的return false行一样取消它。 -
有人吗?认为这是一个简单的解决方法,我只是瞥了一眼……
标签: javascript forms submit confirm