我这里有个奇怪的问题。我基本上有一个表单,其中有一个用于输入卡号的字段。根据卡号,java 脚本会自动检测卡类型(maestro,或 visa 或其他)。假设 javascript 检测到的卡号是“maestro” , 它会将此值添加到表单中的隐藏字段。
现在我想要的是另一个 javascript,它检测隐藏字段中的值(它的 id="ccType"
并且应该用 id="cvv"
隐藏一个文本字段>
$('#ccType').change(function(){
if($(this).val() == 'maestro')
$('#cvv').closest('.name').hide();
else
$('#cvv').closest('.name').show();
});
我试过的这个 javascript 确实有效,如果隐藏字段(id='ccType'
没有隐藏)并且我手动输入值“maestro”,它隐藏了 cvv 字段.But 而不是手动输入 ccType,正如我之前所说,我有一个自动检测卡类型并填充 id=ccType
字段的 javascript。但是上面的代码不起作用。只有当我手动向 ccType 字段添加一个值,当该字段失去焦点时,cvv 被隐藏,否则不会!
当自动检测/自动填充 javascript 自动填充 ccType 字段时,我找不到其他方法来隐藏 cvv。
我这里有 fiddle http://jsfiddle.net/y8UKN/5/ .我已经给出了两个脚本,一个自动填充的脚本和一个用于隐藏 cvv 的脚本(它不起作用 :D )
为简单起见,我删除了 ccType 字段的“隐藏”属性,以便您可以看到其中的值。尝试用以“6”开头的数字填充卡号,它将检测到 maestro,并且该字段将是已填充且此值“maestro”应隐藏 ccv。
我知道这可能是一个令人困惑的问题。但我已尽最大努力提供清晰的图片并制作了一个工作 fiddle 。等待尽快回复。
谢谢
最佳答案
我从您的问题中了解到,当您隐藏 Field 时,它不会触发更改事件。
尝试像这样手动触发你的更改事件
$( "#ccType" ).trigger( "change" );
当您设置隐藏字段值时,之后添加此代码行
编辑
在此处添加上一行
if($(".cards li:not('.off')").length == 1){
$('#ccType').val($(".cards li:not('.off')").attr('class'));
$( "#ccType" ).trigger( "change" );
}
关于javascript - 根据隐藏字段中的值隐藏文本字段,该隐藏字段由 javascript 自动填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486386/