2013-03-31 90 views
1

我有一個帶有onclientclick和onclick事件的按鈕。我的頁面中也有一個jQuery。這個jquery在timer elpase時註冊按鈕點擊事件。 OnclientClick調用一個函數來驗證一個單選按鈕是否被點擊...定時器運行時...如果用戶單擊(Next)按鈕而沒有選擇一個選項(radiobuttonList)...它返回false,因此服務器防止側事件。然而,如果選擇了定時器經過和沒有項目時,表單提交與空白的選項 這裏是代碼,OnClientClick返回true時OnClick事件不會觸發

var countdownTimer, countdownCurrent; 
$(document).ready(function() { 
    countdownCurrent = $('#ctl00_MainContent_example2submit').val() * 100; 
    countdownTimer = $.timer(function() { 
    var min = parseInt(countdownCurrent/6000); 
    var sec = parseInt(countdownCurrent/100) - (min * 60); 
    var micro = pad(countdownCurrent - (sec * 100) - (min * 6000), 2); 
    var output = "00"; if (min > 0) { output = pad(min, 2); } 
    $('.countdowntime').html(output + ":" + pad(sec, 2) + ":" + micro); 
    if (countdownCurrent == 0) { 
     $('#ctl00_MainContent_btnNext').click(); 

    } else { 
     countdownCurrent -= 7; 
     if (countdownCurrent < 0) { 
      countdownCurrent = 0; 
     } 
    } 
}, 70, true); 
$('#example2submit').bind('keyup', function (e) { 
    if (e.keyCode == 13) { 
     countdownReset(); 
    } 
}); 

function CheckIfOptionSelected() { 
    var vFlag = true; 
    var radioButton1 = document.forms[0].elements['ctl00_MainContent_rdBtnListOptions_0']; 
    var radioButton2 = document.forms[0].elements['ctl00_MainContent_rdBtnListOptions_1']; 
    var radioButton3 = document.forms[0].elements['ctl00_MainContent_rdBtnListOptions_2']; 
    var radioButton4 = document.forms[0].elements['ctl00_MainContent_rdBtnListOptions_3']; 

    if (radioButton1.checked == false && radioButton2.checked == false && radioButton3.checked == false && radioButton4.checked == false && countdownCurrent > 0) { 
     vFlag = false; 
    } 

    else { 
     countdownReset(); 
     vFlag = true; 

    } 
    return vFlag; 
} 

function countdownReset() { 
    var newCount = parseInt($('#ctl00_MainContent_example2submit').val()) * 100; 
    if (newCount > 0) { countdownCurrent = newCount; } 
} 

我面對的問題是,如果我允許定時器經過沒有在單選按鈕列表中選擇... Onclick事件觸發,一個成功的回發,但是當我選擇一個選項...並且沒有點擊NEXT按鈕我允許計時器過去....回發沒有發生?? .... 下一步按鈕如下:

<asp:Button ID="btnNext" runat="server" Height="26px" 
      OnClientClick="if(!CheckIfOptionSelected()){return false;};" 
      OnClick="btnNext_Click" Text="Next" 
      Width="77px" CausesValidation="False" /> 

回答

3

嘗試這樣的:

OnClientClick="return CheckIfOptionSelected();" UseSubmitBehavior="false" 

如果函數返回true,的onclick一定會努力!

+0

是我我也嘗試過...但它不工作...我也證實,該方法返回true ... –

+0

嘗試添加'UseSubmitBehavior =「false」'屬性的按鈕,然後再試一次... –

+0

謝謝你們......我忘了userSubmitBehaviour =「false」att肋骨... –

0

如果我們使用UseSubmitBehavior =「false」,它不工作。也不需要給CausesValidation =「False」。

樣本Java腳本下面函數來檢查空值,當用戶點擊提交按鈕,而無需輸入:

function validatePwd() 
     { 
     var txtpwd = document.getElementById('txtpwd').value; 
     if (txtpwd == "") { 
      alert("Please enter new password"); 
      return false; 
     } 
     else { 
      return true; 
     } 

    } 

略低於事件足以在asp.net按鈕控制

OnClientClick="return validatePwd();" 

OnClick="btnsubmit_Click" 
相關問題