隐藏基于隐藏字段内的值的文本字段,该字段由javascript自动填充

时间:2013-12-10 04:52:56

标签: javascript jquery html css forms

我这边有一个奇怪的问题。我基本上有一个表格,其中有一个用于输入卡号的字段。根据卡号,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。

我知道这可能是一个令人困惑的问题。但我已经尽力提供一个清晰的画面,并且也做了一个工作小提琴。等待回应很快。

由于

1 个答案:

答案 0 :(得分:2)

我从您的问题中理解的是,当您隐藏字段时,它不会触发更改事件。

尝试像这样手动触发您的更改事件

$( "#ccType" ).trigger( "change" );

设置隐藏字段值后,添加此代码行

修改

在此处添加以上行

if($(".cards li:not('.off')").length == 1){
       $('#ccType').val($(".cards li:not('.off')").attr('class'));
       $( "#ccType" ).trigger( "change" );
}