gpt4 book ai didi

Javascript:onSubmit 函数在函数完成之前提交表单?

转载 作者:行者123 更新时间:2023-11-29 15:47:53 24 4
gpt4 key购买 nike

我问这个是因为我自己完全不知所措,需要一双新的眼睛。

以下 JavaScript 函数在提交连接的 HTML 表单时成功调用。函数启动并运行前两个 if 语句(如果返回 false 则停止提交)。

然后,第一个测试 alert “before” 出现,然后表单提交,完全错过了其余的功能。在测试时,我将最后一行更改为返回 false,这样无论发生什么情况,该函数都应该返回 false,但表单仍会提交。

function validateForm(form)
{
// declare variables linked to the form
var _isbn = auto.isbn.value;
var _idisplay = auto.isbn.title;
var _iref = "1234567890X";
// call empty string function
if (EmptyString(_isbn,_idisplay)==false) return false;
// call check against reference function
if (AgainstRef(_isbn,_iref,_idisplay)==false) return false;
// call check length function
alert("before");///test alert

////// FORM SUBMITS HERE?!? /////////////

if (AutoLength(_isbn)==false) return false;
alert("after");///test alert
// if all conditions have been met allow the form to be submitted
return true;
}

编辑:这是 AutoLength 的样子:

function AutoLength(_isbn) {
if (_isbn.length == 13) {
return true; {
else {
if (_isbn.length == 10) {
return true; {
else {
alert("You have not entered a valid ISBN10 or ISBN13. Please correct and try again.");
return false;
}
}

最佳答案

AutoLength 的实现有错误。目前,它看起来像这样:

function AutoLength(_isbn) {
if (_isbn.length == 13) {
return true; { // <------ incorrect brace
else {
if (_isbn.length == 10) {
return true; { // <------ incorrect brace
else {
alert("You have not entered a valid ISBN10 or ISBN13. Please correct and try again.");
return false;
}
}

看看它是如何不关闭所有 block 的?那是因为你在两个地方使用了错误的大括号,而且你忘记了关闭函数。

你可以像这样重写这个函数:

function AutoLength(_isbn) {
return _isbn.length === 13 || _isbn.length === 10;
}

如果您执意要使用 alert,您可以在 validateForm 中执行此操作(尽管我会尝试找到一种更加用户友好的方式来显示错误信息)。

将来,当您尝试调试代码时,您可以使用 trycatch 来“捕获”错误,因为它们发生,像这样:

try {
if (false === AutoLength(_isbn)) {
return false;
}
} catch (e) {
alert('AutoLength threw an error: '+e.message);
}

关于Javascript:onSubmit 函数在函数完成之前提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com