2012-07-03 68 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