0

请检查上面的链接。有一条注释“*请同意隐私政策和免责声明”我想在单击按钮时显示此注释,但前提是我已选中“我已阅读并同意隐私政策和免责声明”此复选框.起初我想隐藏该注释。我只想在我没有选中该复选框时才显示该注释onclick of button。请告知...

这是我的代码。

    $('#newprivacy').css('color','#ff0000');
 $('#newprivacy').hide();
 $('#btnContinue').click(function(e) { 
if(!document.getElementById('privacypolicy').checked) { 
// checkbox not checked e.preventDefault(); $('#newprivacy').show(); } else { 
$('#AccountSettingsForm').submit(); 
} });
 $('#privacypolicy').click(function(){ 
if ($('#privacypolicy').is(":checked")) {
 $('#newprivacy').hide();

     } });   } 

它不能在 chrome 和 IE 上运行,为什么?

4

5 回答 5

1

当文档首先准备好时隐藏 div....

$(document).ready(function(){
 $('#newprivacy').hide();
});

然后把你的代码放在那里......我认为这会奏效......

于 2012-09-19T10:23:33.677 回答
1

我认为您应该查看有关使用“隐藏”属性的 w3schools 文档。

http://www.w3schools.com/css/css_display_visibility.asp

然后你总是可以使用 jquery 来添加和删除这个属性。或者改变它的价值观。

于 2012-09-19T10:23:48.870 回答
1

大多数功能似乎都在那里,如果他们在选中复选框后取消选中该复选框,您只需要再次禁用该按钮。我在下面对您的代码进行了一些更改,即:

  1. 使用change复选框上的事件而不是click事件,这样如果他们使用键盘更改其状态,它仍然会触发。
  2. 使用this来引用事件处理函数中的复选框,而不是再次选中它,并checked直接在元素上访问属性,而不是使用 jQuery.is()函数。
  3. 使用.prop()函数而不是.attr()函数来修改disabled按钮的属性。

jQuery代码:

$("#btnContinue").prop("disabled", true);
$('#newprivacy').css('color', '#ff0000');
$('#privacypolicy').change(function() {
    if (this.checked) {
        $('#newprivacy').hide();
        $("#btnContinue").prop("disabled", false);
    }
    else {
        $('#newprivacy').show();
        $('#btnContinue').prop('disabled', true);
    }
});

我假设上面的代码要么包含在$(document).ready()调用中,要么位于页面末尾,以便在代码执行时元素可用。

请注意,前两行的效果也可以使用 HTML 来实现,无需使用 jQuery 或 JavaScript 代码隐藏和着色它们。

而且,如果您真的想用click按钮上的事件处理程序完全替换该逻辑,则应该这样做:

$('#btnContinue').click(function(e) {
    if(!document.getElementById('privacypolicy').checked) {
        // checkbox not checked
        e.preventDefault();
        $('#newprivacy').show();
    }
    else {
        $('#AccountSettingsForm').submit();
    }
});
于 2012-09-19T10:24:38.983 回答
1
$('#btnContinue').click(function (e) {
    e.preventDefault();

    if ($('#privacypolicy').is(":checked")) {

        //either submit form or return true
        $('#AccountSettingsForm').submit();
    }
    else {

        $('#newprivacy').show();

        return false;
    }


});

然后单击复选框,您可以删除隐私政策。

于 2012-09-19T10:25:07.047 回答
1

像这样试试

 $(document).ready(function(){
 $('#newprivacy').hide();
 $("#btnContinue").attr("disabled", "disabled");
 $('#newprivacy').css('color','#ff0000');
 $('#privacypolicy').click(function(){
 if ($('#privacypolicy').is(":checked")) {
    $("#btnContinue").removeAttr("disabled");
}
else 
{
    $('#newprivacy').show();
}
});})
于 2012-09-19T10:26:01.213 回答