带有动态表单操作的Javascript不会在确认对话框的(true)上提交

带有动态表单操作的Javascript不会在确认对话框的(true)上提交,javascript,form-submit,Javascript,Form Submit,我有一个简单的(没有花哨的框架)javascript,它在提交表单元素时向用户提问。如果答案返回true,那么脚本将表单的操作设置为某个URL(其中包含一些服务器端逻辑),并调用该表单的sumbit方法。或者至少在理论上,这就是它的本意!但事实并非如此。。这根本没用。它似乎要提交表单,但如果提交了,则另一个文件中的服务器端逻辑(已设置为action属性的值)将确保用户被带到其他地方 这是我的表格: <form name='myForm' id='myForm' method='post'

我有一个简单的(没有花哨的框架)javascript,它在提交表单元素时向用户提问。如果答案返回true,那么脚本将表单的操作设置为某个URL(其中包含一些服务器端逻辑),并调用该表单的sumbit方法。或者至少在理论上,这就是它的本意!但事实并非如此。。这根本没用。它似乎要提交表单,但如果提交了,则另一个文件中的服务器端逻辑(已设置为action属性的值)将确保用户被带到其他地方

这是我的表格:

<form name='myForm' id='myForm' method='post' onSubmit='annoyTheUser(this);'>

您的JS应该如下所示:

function annoyTheUser(theForm)
{
    if(confirm("blah?"))
    {
        theForm.action = 'savequestion.asp';
        return true;
    }
    else
        return false;
}

您可以添加使表单也提交的部分吗。剧本看起来不错。只有那个看起来可疑。

试试这个

<form name='myForm' id='myForm' method='post' onSubmit='return annoyTheUser(this);'>

还需要
onsubmit=“return(hattertheuser(this));”
来实现这一点,这可能是OP想要的。嗯,这很明显,我没有看到。。。但它在Safari中确实有效(尽管在Firefox中不起作用(我只是在这篇文章之后才尝试过)。
<form name='myForm' id='myForm' method='post' onSubmit='return annoyTheUser(this);'>
function annoyTheUser(theForm)
{
if(confirm("blah?"))
{
theForm.action = 'savequestion.asp';
return(true);
}
else
{
return(false);
}
}