我有一个包含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; }
}
我面临的问题是,如果我允许计时器过去而在radiobutton列表中没有选择任何内容... Onclick事件触发,成功回发,但是当我选择一个选项...而不点击下一步按钮我允许计时器过去....回发不会发生?? .... “下一步”按钮如下:
<asp:Button ID="btnNext" runat="server" Height="26px"
OnClientClick="if(!CheckIfOptionSelected()){return false;};"
OnClick="btnNext_Click" Text="Next"
Width="77px" CausesValidation="False" />
答案 0 :(得分:3)
试试这样:
OnClientClick="return CheckIfOptionSelected();" UseSubmitBehavior="false"
如果函数返回true
,onclick肯定会有效!
答案 1 :(得分: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"
答案 2 :(得分:0)
OnClientClick="return CheckIfOptionSelected(); return true;"
对我来说很好。