2013-03-31 32 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" 
相关问题