是否可以使用动作=“;someFunction()"提交表格时

Is it possible to use action="someFunction()" when a form is submitted?

本文关键字:quot 提交 表格 someFunction 是否 可以使      更新时间:2023-09-26

从网上看,我没有看到很多将函数设置为等于函数的例子。然而,在我发现的为数不多的论坛中,似乎有很多人说这种方法没有得到广泛支持。

为了解释我的问题,我有一个表格,我想在上面实现:

<table border="0" cellpadding="2" cellspacing="5">
                <th colspan="2" align="center">Check Out</th>
                <form name="checkOut" method="post" onSubmit="return(validate(this))" action="checkOut()"> 
                    <tr><td>Territory Number</td><td><input type="text" name="numberOut" tabindex="1" maxlength="3" size="3" /></td>
                    </tr><tr><td>First Name of Publisher</td><td><input type="text" onKeyUp="showHint(this.value)" name="fName" tabindex="2" maxlength="15"/></td>
                    </tr><tr><td>Last Name of Publisher</td><td><input type="text" onKeyUp="showHint_l(this.value)" name="lName" tabindex="3" maxlength="15" /></td>
                    </tr><tr><td><input type ="checkbox" name="specialC" tabindex="4" value="Yes"/> Special Campaign</td>
                    </tr><tr><td><input type="button" onClick="clearForm()" value="Reset" /></td><td><input type="submit" value="Check Out" /></td>
                </form>
                <p>Suggestions: <span id="txtHint"></span></p>
            </table>

更具体地说,checkOut()函数将使用ajax将表单值提交给一个php脚本,该脚本对数据库运行一些插入命令(我想使用ajax来学习这项技术,因为我对基于web的语言还很陌生。因此,我想暂时停止使用jQuery)。到目前为止,我还没有这个函数的例子。

当然,这就引出了一个问题,我可以简单地将该函数放入事件处理程序中吗:onSubmit="checkOut()"?同时,我会留下action="?我假设整个函数将执行php脚本,并完全按照我的意愿执行,而不需要单独的操作脚本。

如有任何反馈,我们将不胜感激。

使用<input type="button" />(或锚点,或button,或其他)而不是<input type="submit" />。在按钮的点击事件中,执行:

if(validate(document.getElementById("formId"))){
    // post the form w/ AJAX
    checkOut();
}

请记住,任何基于脚本的解决方案都可能具有非脚本选项。在这种情况下,可以像在noscript标签中放入<input type="submit" />一样简单。

顺便说一句,您的标记是无效的。form不能作为table的直接子级出现。

您可以将其设为action="javascript:checkOut();",但几乎可以肯定的是,将其放入onSubmit处理程序会更好。

使用此代码是实现的最佳方式

<input type="submit" id="submit_button">

和类似的javascript代码

var submit = getElementById('submit_button');
submit.preventDefault();
submit.addEventListener('click', checkOut);

在第一行中,我们指定了按钮,接下来我们阻止执行默认操作,接下来我们为按钮点击

时添加了一个监听器

我通常使用:

<input type="button" value="Submit" onclick="myFunction();">

然后,如果一切正常,我的函数将在底部使用本机提交函数

if (isSuccess)
    theForm.submit();
else
    return false;