javascript更改隐藏值,然后提交表单

javascript更改隐藏值,然后提交表单,javascript,html,forms,Javascript,Html,Forms,(我搜索过类似的内容,但没有找到任何匹配和/或有效的内容) 我有一个进度审查表,用户可以在其中审查前面步骤中的设置。以下是我现在的表格: <form id='reviewForm' name='reviewForm' action='?action=ae&view=makeWorkFlow' method='post'> <table width='100%'> <tr> <th width='15

(我搜索过类似的内容,但没有找到任何匹配和/或有效的内容)

我有一个进度审查表,用户可以在其中审查前面步骤中的设置。以下是我现在的表格:

<form id='reviewForm' name='reviewForm' action='?action=ae&view=makeWorkFlow' method='post'>
    <table width='100%'>
        <tr>
            <th width='150'>Workflow Name</th>
            <td>" . $workflowName . "</td>
        </tr>
        <tr>
        <th valign='top'>Tasks</th>
            <td>
                <table width='99%'>
                    <tr>
                        <td>
                            <select name='task_1'>
                                <option value='0'>Select a Task</option>
                                <ALL OTHER OPTIONS>
                            </select>
                        </td>
                        <td><input type='text' name='turnAround_1' value='#VALUE#' onkeyup="if (/[a-z\s,$]/ig.test(this.value)) this.value = this.value.replace(/[a-z\s,$]/ig,'')" placeholder='Turn Around Time (hours)' /> Hours</td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td colspan='2'>
                <input type='hidden' id='step' name='step' value='4' />
                <input type='submit' name='submit' value='Create Workflow' />&nbsp;&nbsp;
                <input type='button' value='Update Changes' onclick='setStep();' />&nbsp;&nbsp;
                <input type='button' value='Cancel' onclick='javascript:history.go(-3);' />
            </td>
        </tr>
    </table>
</form>

工作流名称
“$workflowName。”
任务
选择一项任务
小时
因此,基本上,用户已经从下拉列表中选择了项目。我需要向他们显示一个“查看”页面,在该页面中,他们可以选择更改选择,然后单击“更新更改”按钮。单击该按钮时,“步骤”隐藏字段的值需要从4更改为3,然后通过“设置步骤”功能提交表单,如下所示:

<script language='JavaScript' type='text/javascript'>
    function setStep()
    {
        document.forms["reviewForm"].step.value = 3;
        var t = setTimeout("document.reviewForm.submit();", 0);
    }
</script>

函数setStep()
{
document.forms[“reviewForm”]。step.value=3;
var t=setTimeout(“document.reviewForm.submit();”,0);
}

我意识到setTimeout并不是最好的方法,但这正是我现在想要解决的问题。我确信我缺少的一些小东西可以解决这个问题,但我已经做了一个多小时了,找不到它。

尝试
document.getElementById('step')。value=3
而不是
document.forms[“reviewForm”]。step.value=3

尝试
document.getElementById('step')。value=3
而不是
document.forms[“reviewForm”]。step.value=3

更新


更新

问题在于提交按钮的名称是
submit

因此,在解析
document.reviewForm.submit()时

它不允许,因为submit()是javascript中的函数。在您的代码中,submit也是表单中元素的名称(

将按钮名称更改为除
submit
(例如:
submit1
)以外的任何名称,它将成功工作

也不需要我们
setTimeout
只需使用以下代码

function setStep()
    {
        document.forms["reviewForm"].step.value = 3;
                document.reviewForm.submit();
    }

问题是提交按钮的名称是
submit

因此,在解析
document.reviewForm.submit()时

它不允许,因为submit()是javascript中的函数。在您的代码中,submit也是表单中元素的名称(

将按钮名称更改为除
submit
(例如:
submit1
)以外的任何名称,它将成功工作

也不需要我们
setTimeout
只需使用以下代码

function setStep()
    {
        document.forms["reviewForm"].step.value = 3;
                document.reviewForm.submit();
    }

看起来你的代码只能在IE中运行:-?在FF&IE中尝试-禁止进入。看起来你的代码只能在IE中运行:-?在FF&IE中尝试-禁止进入。