(我搜索过类似的东西,但没有发现任何匹配和/或有效的东西)
我有一个进度审核表单,用户可以从之前的步骤中查看其设置。以下是我现在的表格:
<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' />
<input type='button' value='Update Changes' onclick='setStep();' />
<input type='button' value='Cancel' onclick='javascript:history.go(-3);' />
</td>
</tr>
</table>
</form>
因此,基本上,用户已经从下拉列表中选择了项目。我需要向他们展示一个“评论”页面,他们可以选择更改他们的选择并点击“更新更改”按钮。单击该按钮时,“step”隐藏字段的值需要从4更改为3,然后通过“setStep”函数提交表单,如下所示:
<script language='JavaScript' type='text/javascript'>
function setStep()
{
document.forms["reviewForm"].step.value = 3;
var t = setTimeout("document.reviewForm.submit();", 0);
}
</script>
我意识到setTimeout不是最好的方法,但它正是我现在想要解决的问题。我确定这是一些我想念的小东西可以解决这个问题,但是我已经在这一段时间内待了一个多小时而找不到它。
答案 0 :(得分:6)
问题是提交按钮的名称是submit
因此在解析document.reviewForm.submit()
它不允许,因为submit()是javascript中的函数。在您的代码中,submit也是表单中元素(<input type='submit' name='submit' value='Create Workflow' />
)的名称。
将按钮的名称更改为submit
以外的任何内容(例如:submit1
),它将成功运行
也不需要我们setTimeout
只需使用以下代码
function setStep()
{
document.forms["reviewForm"].step.value = 3;
document.reviewForm.submit();
}
答案 1 :(得分:2)
document.getElementById('step').value='3';
document.getElementById('reviewForm').submit();
更新
答案 2 :(得分:1)
尝试document.getElementById('step').value = 3
而不是 。document.forms["reviewForm"].step.value = 3;