JQuery隐藏表单的一部分并避免浏览器自动完成

时间:2010-12-13 19:21:24

标签: jquery google-chrome

我正在使用JQuery来隐藏表单的一部分并基于一个有2个单选按钮的问题:“yes”映射到1而“no”映射到0,我使表单的那一部分显示出来以便用户可以填写它。

这是负责它的部分。对不起我的JQuery糟透了:

function appear(speed) {
    if ($("input[name='fillProfileNow']:checked").val() == "0") {
        $("#profileFields").hide(speed);
    }
    else {
        $("#profileFields").show(speed);
    }
}

$(document).ready(function() {         
    $("#profileFields").css("display","none"); 
    appear('');
});

$("input[name='fillProfileNow']").change(function() { appear('slow'); });

我的问题是,我今天意识到测试我的表单,Chrome根据我的历史使用表单自动完成来填充这些隐藏的字段。问题是使用的数据是废话,因为我有时并不总是说实话,所以发生验证错误,但它没有显示,因为我没有选中呈现表单部分的单选按钮。

有什么方法可以避免这种情况吗?如果它们被隐藏,可能会重置字段?这是正常的吗?

2 个答案:

答案 0 :(得分:1)

尝试将autocomplete=off添加到输入中:

$("input[name='fillProfileNow']:checked").attr("autocomplete", "off").val()

答案 1 :(得分:1)

尝试将defaultChecked属性设置为null:

$("input[name=fillProfileNow]").attr('defaultChecked', null);

或:

$("input[name=fillProfileNow]").each(function() { this.defaultChecked = null } );