我这边有一个奇怪的问题。我基本上有一个表格,其中有一个用于输入卡号的字段。根据卡号,java脚本会自动检测卡片类型(maestro,或签证或其他)。如果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字段。但不是手动输入ccType,正如我之前所说,我有一个javascript,可以自动检测卡片类型并填充id=ccType
字段。但是上面的代码不能正常工作。只有当我手动为ccType字段添加值时,才有效该领域松散焦点,cvv是隐藏的,其他明智的不是!
当autodetetcting / autofilling javascript自动填充ccType字段时,我无法找到隐藏cvv的另一种方法。
我在这里摆弄http://jsfiddle.net/y8UKN/5/。我已经给出了两个脚本,一个自动填充的脚本和一个隐藏cvv的脚本(它不起作用:D)
为简单起见,我删除了ccType字段的'hidden'属性,以便你可以看到它里面的值。用一个以“6”开头的数字填充卡号,它将检测到maestro,字段将是填充,这个值'maestro'应隐藏ccv。
我知道这可能是一个令人困惑的问题。但我已经尽力提供一个清晰的画面,并且也做了一个工作小提琴。等待回应很快。
由于
答案 0 :(得分:2)
我从您的问题中理解的是,当您隐藏字段时,它不会触发更改事件。
尝试像这样手动触发您的更改事件
$( "#ccType" ).trigger( "change" );
设置隐藏字段值后,添加此代码行
修改强>
在此处添加以上行
if($(".cards li:not('.off')").length == 1){
$('#ccType').val($(".cards li:not('.off')").attr('class'));
$( "#ccType" ).trigger( "change" );
}