2012-07-03 36 views
1

(我搜索过类似的东西,但没有发现任何匹配和/或工程)JavaScript来改变隐藏的价值,然后提交表单

我有用户从哪里回顾其设置进度评审表先前的步骤。下面是现在的形式:

<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> 

因此,基本上,用户已经从下拉列表中选择了项目。我需要向他们展示一个“审查”页面,他们可以选择更改他们的选择,然后单击“更新更改”按钮。当点击该按钮,需要“步骤”隐藏字段的值从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

看起来像你的代码只能在IE中运行: - ? –

+0

在FF&IE试过 - 没有去过。 – Brds

回答

6

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

因此而解决document.reviewForm.submit()

它不允许,因为提交()是在JavaScript函数。并且在您的代码中,提交也是表单中元素的名称(<input type='submit' name='submit' value='Create Workflow' />)。

更改按钮的名称别的比submit(用于如:submit1),它会工作顺利

也没必要给我们setTimeout简单地使用下面的代码

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

尝试document.getElementById('step').value = 3而不是 document.forms["reviewForm"].step.value = 3;

+0

不...仍然没有 – Brds

2
document.getElementById('step').value='3'; 
document.getElementById('reviewForm').submit(); 

UPDATE

+0

仍然不工作:( – Brds