2011-07-15 203 views
-2

問題出在這裏:我有一個帶有三個按鈕和一些隱藏輸入字段的簡單表單。根據按下的按鈕(不同的名稱=「」值),這個動作做了一些不同的事情。
我現在想通過這樣一個確認對話框添加到該表單:html表單提交 - javascript不提交輸入按鈕

<form method="POST" action="/action" onsubmit="return confirmFormSubmit(this);"> 
    <input type="submit" name="one" value="This"> 
    <input type="submit" name="two" value="That"> 
    <input type="submit" name="three" value="Something else"> 
</form> 

<script type="text/javascript"> 
function confirmFormSubmit(obj) 
{ 
    window.event.preventDefault(); 
    jConfirm('Are you sure you want to do this?', 'Awaiting confirmation', function(r) { 
     if (r == true) { 
      obj.form.submit(); 
     } else { 
      return false; 
     } 
    }); 
} 
</script> 

當我點擊確定,動作發生,但輸入按鈕沒有提交。
做'document.location = obj.form.action;'不是一個選項,因爲它不會提交POST參數。

我該如何讓該死的東西提交輸入字段而不只是調用該操作?

+0

那麼你的「/動作」的動作(對不起,這樣的:P)實際上做? –

+0

更改實體的狀態或刪除它。無論如何,它有什麼關係?這已經是服務器端。 – jurchiks

+0

@Samuele - 當然,它爲什麼會運行這個動作。 – aroth

回答

0

我認爲這是因爲onsumit方法重寫表單聲明中的操作。 我實際上會更改表單的按鈕,並使其成爲鏈接到JavaScript方法的按鈕,該方法執行所需的測試並將值提交給正確的操作。

+0

有沒有測試,我只需要它提交POST變量,除了提交按鈕,所有這些都是相同的... – jurchiks

-1
<form method="POST" action="/action"> 
    <a href="javascript: confirmFormSubmit(this)"> 
     <input type="button" name="three" value="Something else"> 
    </a> 
</form> 

這樣的事情應該是工作

+0

-1爲什麼,實際上?老兄,試試吧,你不用表單submit/onsubmit,但是你調用一個處理提交給你的javascript方法。它實際上工作。所以,在別的之前,嘗試一下。 –

+0

對不起,我寫了2年後,但我不是那個低估了你的答案的人,儘管我明白爲什麼有人會這麼做。 – jurchiks