2016-11-26 25 views
0

之前取消按鈕上點擊Submit按鈕我的JavaScript代碼執行$.post("Submit.aspx",...,有時需要幾秒鐘,以便用戶能夠點擊Back按鈕是不可取的。禁用POST

所以我嘗試禁用或隱藏返回按鈕,但它不工作,它仍然是可以點擊的。任何線索?

<input type="submit" value="Submit" class="next" onclick="submitData()" /> 
<input type="submit" id="btnBack" value="Back" onclick="goBack()" /> 

function submitData() 
{ 
    // I try to disable or hide Back button but it does not work 
    $('#btnBack').hide(); 
    $('#btnBack').attr("disabled",true); 
    var btnBack= document.getElementById("btnBack").disabled = true; 


    // Long request 
    $.post("Submit.aspx",.. 
} 
+1

'的console.log($( '#btnBack'));'?你確定'#btnBack'找到元素了嗎? – AlexandrX

+0

你有開發者控制檯上的錯誤.hide一定要工作,如果jQuery是有 – Buddhi741

+0

@AlexandrX是找到的元素。但不隱藏或禁用該元素。 –

回答

1

你的代碼似乎是正確的。你添加了JQuery嗎?

檢查此:

function submitData(){ 
 
    // I try to disable or hide Back button but it does not work 
 
    $('#btnBack').hide(); 
 
    $('#btnBack').attr("disabled",true); 
 
    var btnBack= document.getElementById("btnBack").disabled = true; 
 

 
} 
 

 
function goBack(){ 
 
    console.log("I'm back"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="submit" value="Submit" class="next" onclick="submitData()" /> 
 
<input type="submit" id="btnBack" value="Back" onclick="goBack()" />

+0

我可以說,在你的示例代碼作品找到,但在我的纔不是。 –

0
$("#btnBack").prop('disabled', true); 

而不是

$('#btnBack').attr("disabled",true); 
+0

不知道這是一個問題。 '$(「#btnBack」)隱藏();'應該隱藏也無妨 – AlexandrX

+0

我的代碼並不能掩蓋它,它禁用它。給它一個去,並刪除你使用'.hide()'和'var btnBack = document.getElementById(「btnBack」)。disabled = true;' –

+0

他試圖**隱藏**元素,它不工作太 – AlexandrX

2

您應該使用$(el).prop()禁用輸入。此外,當你使用jQuery,你不需要在HTML中添加onclick,你可以像下面如:

$('input[value="Submit"]').on('click', function(e) { 
 
    $('#btnBack').prop("disabled",true); 
 
    //your post request 
 
    //$.post("Submit.aspx",.. 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="submit" value="Submit" class="next" /> 
 
<input type="submit" id="btnBack" value="Back" onclick="goBack()" />

爲您的代碼將是:

function submitData() { 
    $('#btnBack').prop("disabled",true); 
    $.post("Submit.aspx",.. 
} 
1

嘗試此)

canSubmit = true; 
function submitData(){ 
    if(!canSubmit){ 
     return false; 
    } 
    canSubmit = false; 

    // disabling button 
    $('#btnBack').attr("disabled", true); 

    // Long request 
    $.post("Submit.aspx", ...).always(function(){ canSubmit = true; }); 
} 

提交表格之前和之後的AJAX請求響應復位只需使用一個變量,並檢查該值它的價值。順便說一句,你可以禁用按鈕,如果你想這樣做。

相關問題