Javascript OnClintClick返回true时不触发OnClick事件

Javascript OnClintClick返回true时不触发OnClick事件,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个带有onclientclick和onclick事件的按钮。我的页面中还有一个jquery。此jquery在计时器elpase时注册按钮单击事件。OnclientClick调用一个函数,验证是否单击了单选按钮…当计时器运行时…如果用户在未选择选项(radiobuttonList)的情况下单击(下一步)按钮…它将返回false,从而阻止服务器端事件。。但是,如果计时器已过且未选择任何项目,则提交表单时会显示空白选项 这是密码 var countdownTimer, countdownCurr

我有一个带有onclientclick和onclick事件的按钮。我的页面中还有一个jquery。此jquery在计时器elpase时注册按钮单击事件。OnclientClick调用一个函数,验证是否单击了单选按钮…当计时器运行时…如果用户在未选择选项(radiobuttonList)的情况下单击(下一步)按钮…它将返回false,从而阻止服务器端事件。。但是,如果计时器已过且未选择任何项目,则提交表单时会显示空白选项 这是密码

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; }
}
var倒计时,倒计时电流;
$(文档).ready(函数(){
countdownCurrent=$('#ctl00_main content_example2submit').val()*100;
倒计时=$.timer(函数(){
var min=parseInt(倒计时电流/6000);
var sec=parseInt(倒计时电流/100)-(最小值*60);
var micro=焊盘(倒计时电流(秒*100)-(最小*6000),2);
如果(最小值>0){output=pad(最小值,2);}
$('.countdown').html(输出+“:”+pad(第二节)+“:”+micro);
如果(倒计时电流==0){
$('#ctl00_main content_btnNext')。单击();
}否则{
倒计时电流-=7;
如果(倒计时电流<0){
倒计时电流=0;
}
}
},70,对);
$('#example2submit').bind('keyup',函数(e){
如果(e.keyCode==13){
倒计时复位();
} 
});
函数CheckIfOptionSelected(){
var vFlag=真;
var radioButton1=document.forms[0]。元素['ctl00\u MainContent\u rdBtnListOptions\u 0'];
var radioButton2=document.forms[0]。元素['ctl00\u MainContent\u rdBtnListOptions\u 1';
var radioButton3=document.forms[0]。元素['ctl00_MainContent_rdBtnListOptions_2'];
var radioButton4=document.forms[0]。元素['ctl00\u MainContent\u rdBtnListOptions\u 3';
if(radioButton1.checked==false&&radioButton2.checked==false&&radioButton3.checked==false&&radioButton4.checked==false&&countdownCurrent>0){
vFlag=false;
}
否则{
倒计时复位();
vFlag=true;
}
返回vFlag;
}
函数倒计时重置(){
var newCount=parseInt($('#ctl00_main content_example2submit').val())*100;
如果(newCount>0){countdownCurrent=newCount;}
}
我面临的问题是,如果我允许计时器在radiobutton列表中没有选择任何内容的情况下运行…Onclick事件将触发,回发成功,但当我选择一个选项时…并且没有单击NEXT按钮,我允许计时器运行…回发不会发生??。。。。 “下一步”按钮如下所示:

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

试着这样做:

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

如果函数返回
true
,onclick肯定会工作!

如果我们使用submitbehavior=“false”,它就不工作了。也不需要给出CausesValidation=“false”

下面的java脚本函数示例,用于在用户单击submit按钮而不输入时检查空值:

    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"  

OnClientClick=“return-checkifoptions-selected();return-true;”“
对我来说效果很好。

是的,我也尝试过……但不起作用……我还确认该方法返回true。。。