我正在使用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根据我的历史使用表单自动完成来填充这些隐藏的字段。问题是使用的数据是废话,因为我有时并不总是说实话,所以发生验证错误,但它没有显示,因为我没有选中呈现表单部分的单选按钮。
有什么方法可以避免这种情况吗?如果它们被隐藏,可能会重置字段?这是正常的吗?
答案 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 } );