2013-04-02 129 views
1

我想要一個網頁,將禁用一個按鈕並運行該功能,頁面刷新後,該按鈕將被重新啓用。該按鈕使用下面的方法創建。問題是當我點擊按鈕時,它可以禁用,但不會運行該功能,頁面甚至不會刷新。不知道問題出在哪裏。ASP禁用按鈕和運行功能

set common = server.createobject("Pen_Ebizcommonproc.stringproc")

<%=common.writeButton ("Submit1","Submit","Create New Sales Contract",30,"onclick=""this.disabled=true;CheckGWidth(this.form);this.form.ContractType.value='N';""")%>

+0

當你點擊按鈕時會發生什麼?表單是否提交?你甚至有表格嗎?此外,請張貼生成的按鈕標記,也許它不是一個提交按鈕。 –

+0

@ShadowWizard我設法解決了這個問題。再次感謝你:) –

回答

2

我所做的大部分工作是在javascript函數中提取它。 我記得禁用按鈕會取消該按鈕的任何後續內聯動作。

<form action="test.asp" method="post"> 
    <input type="submit" onclick="doSomething(this);" /> 
    <input type="text" id="ContractType" name="ContractType" /> 
</form> 

然後在JavaScript

function doSomething(sender) 
{ 
    sender.disabled=true; 
    CheckGWidth(sender.form); 
    sender.form.ContractType.value='N'; 
    sender.form.submit(); 
} 

希望這是任何幫助。

+0

那麼,我所做的是將form1.submit()添加到onClick。因爲它與您提供的解決方案中的sender.form.submit()類似。關於submit(),最好的猜測是,如果我們禁用按鈕然後運行該函數(客戶端驗證),則由於按鈕被禁用,服務器端驗證將不會運行。所以Submit()會強制它將數據從客戶端傳遞到服務器。如我錯了請糾正我。 –

+1

我相信你是對的。禁用的按鈕可用作「返回false」;從而取消任何進一步的*客戶端*行動。 –

0

我不得不這樣做了幾個時間,以便刷新頁面,並重新審視一個頁面被區別對待一個人的第一次訪問或提交時,有一種形式的一部分後,一個頁面上有多個表單,比如計算購物車的更新時。

根據情況,我使用cookie來記錄加載的頁面,以便我可以檢測它是否是第一次訪問,刷新或什麼。如果您有兩個按鈕用於「更新」或「完成」等功能,則可以使用不同隱藏字段的單獨窗體進行mode = update或mode = finish。

+0

不幸的是,這是行不通的。但我設法解決這個問題。謝謝。 –

+0

我如何在用戶首先計算數量折扣的所有訂單上使用它?我還將其用於其他幾個網站上的定製購物車。 – WilliamK

+0

我剛剛閱讀了您的回覆,請不要採取任何違法行爲,但我想說,如果訪問者禁用了Cookie,那麼您的構建將會失敗。我會親自使用Session變量和/或數據庫記錄。永遠不要依賴可以被禁用的東西:) –