根据javascript自动填充的隐藏字段中的值隐藏文本字段

Hide a textfield based on value inside an hidden field which was filled automatically by a javascript

本文关键字:字段 隐藏 文本 javascript 填充 根据      更新时间:2024-06-03

我在这里遇到了一个奇怪的问题。我基本上有一个表格,里面有一个输入卡号的字段。根据卡号,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字段。但是,正如我之前所说的,我有一个javascript,它可以自动检测卡类型并填充id=ccType字段,而不是手动输入ccType。但是上面的代码不起作用。只有当我手动向ccType字段添加值时,它才有效,并且当字段失去焦点时,cvv被隐藏,其他方面则不然!

当ccType字段由autodetetcing/autofilling javascript自动填充时,我找不到其他方法来隐藏cvv。

我这里有小提琴http://jsfiddle.net/y8UKN/5/.我已经给出了两个脚本,一个是自动填充的脚本,另一个是隐藏cvv的脚本(它不起作用:D)

为了简单起见,我删除了ccType字段的"hidden"属性,这样你就可以看到它里面的值。试着用以"6"开头的数字填充卡号,它会检测到maestro,字段会被填充,这个值"maestro"应该会隐藏ccv。

我知道这可能是一个令人困惑的问题。但我已经尽了最大的努力来提供一个清晰的画面,并制作了一把工作小提琴。正在等待答复。

感谢

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

尝试像这个一样手动触发更改事件

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

当你设置你的隐藏字段值,之后添加这个代码行

编辑

在此处添加以上行

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