我在尋找一個腳本,它將阻止或刪除訂單按鈕以防止客戶進行雙重或三重訂購,但多次單擊該按鈕。我不知道這會被稱爲什麼。但該網站是在經典.asp開發的。然而,我會猜測並說這將是一個圖像按鈕上的JavaScript或jQuery的?任何建議或點這將是一個很大的幫助!阻止訂單按鈕
謝謝,
我在尋找一個腳本,它將阻止或刪除訂單按鈕以防止客戶進行雙重或三重訂購,但多次單擊該按鈕。我不知道這會被稱爲什麼。但該網站是在經典.asp開發的。然而,我會猜測並說這將是一個圖像按鈕上的JavaScript或jQuery的?任何建議或點這將是一個很大的幫助!阻止訂單按鈕
謝謝,
看到您對ianpgall的回答發表評論後,我認爲最好的解決方案是對客戶訂單進行服務器端檢查。
當他們點擊按鈕並提交表單時,檢查他們是否已將產品添加到他們的購物籃中。如果他們有,你可以選擇不再添加它,或要求用戶確認。
這允許用戶多次點擊該按鈕,並且還可以防止在用戶禁用javascript的情況下錯誤地添加產品。
這是一個非常糟糕的競爭條件。我確信這個處理速度足夠快以至於它可能不成問題,但是您正在檢查客戶現有訂單的事實絕對不能保證。在服務器中導致較長處理的隨機打嗝(或其他原因)可能會繞過此檢查。 – Ian
什麼是比賽條件? –
服務器端的其他問題是,如果我要檢查數據庫的現有記錄它會工作,但我有客戶有多個帳戶與我們使用相同的地址,電話,聯繫人名稱等...所以如果這是它不會讓他們造成問題。所以我可能只需要禁用此按鈕即可。 –
我想你是指「禁用」按鈕。例如:
<input type="button" id="button1" value="Submit" />
$("#button1").click(function() {
this.disabled = true;
});
如果您正在使用AJAX,可以禁用按鈕單擊時,則刪除該屬性的AJAX完成時。
UPDATE:
正如一個提醒,這樣只會如果用戶已啓用Javascript工作。這是一件相當安全的事情,但我只是想讓你知道。如果它沒有啓用,我不知道如何防止多次點擊,而不強制用戶啓用Javascript。如果這是一個嚴重的問題,那麼你可能需要研究一下。
我不認爲一個「ASP經典」網站使用AJAX ..可能會讓我感到驚訝,但。 – 2012-09-12 03:18:18
感謝您的快速回復。如果使用上面的腳本可以阻止用戶多次點擊,並且是否有用戶這樣做?我發現我的客戶必須點擊訂單,但多次,我最終不得不提供信用。我沒有使用AJAX :( –
@pst哈哈是非常真實的,但我想把它扔在那裏。如果它是一個基本的形式,那麼我認爲原始的「禁用」代碼將工作 – Ian
您可以禁用提交按鈕,一旦它被點擊,這將在大多數情況下防止這種情況。在JavaScript和jQuery中有很多這樣的方法。
這是一個簡單的使用jQuery的例子。一旦表單被提交,它將禁用表單中的任何SUBMIT按鈕,從而防止再次按下提交按鈕。
<script type="text/javascript">
$("form").submit(function(){
$(this).find('input[type=submit]').attr("disabled", "disabled");
});
</script>
如果你也想防止用戶單擊後退,並再次提交,那麼你需要基於ASP會話或餅乾不同的解決方案。
如果客戶想多次點擊該按鈕,該怎麼辦? –
我認爲使按鈕禁用不是一個正確的解決方案,更好的解決方案(我認爲)是顯示產品的數量在每次點擊顯示用戶將知道他選擇了多少事 –
這個問題不能回答沒有顯示代碼。理想情況下,當數據在服務器上處理時*數據(可用作標誌/警戒/檢查)將被保留在數據庫中,以便多個「提交」將被取消(只有第一個被提交)。這種持久性如何發生取決於當前的數據模型。那麼這是怎麼把這個顯示給用戶的問題。 – 2012-09-12 03:22:22