【问题标题】:Hide a textfield based on value inside an hidden field which was filled automatically by a javascript根据隐藏字段中的值隐藏文本字段,该隐藏字段由 javascript 自动填充
【发布时间】:2013-12-10 04:52:55
【问题描述】:

我在这里遇到了一个奇怪的问题。我基本上有一个表单,其中有一个用于输入卡号的字段。根据卡号,Java 脚本会自动检测卡类型(大师、签证或其他)。假设 javascript 检测到的卡号是“大师” ,它会将此值添加到表单中的隐藏字段中。

现在我想要的是另一个 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 是隐藏的, 否则不!

当自动检测/自动填充 javascript 自动填充 ccType 字段时,我找不到其他隐藏 cvv 的方法。

我在这里摆弄http://jsfiddle.net/y8UKN/5/。我已经给出了两个脚本,一个自动填充的脚本和一个用于隐藏 cvv 的脚本(它不起作用:D)

为简单起见,我删除了 ccType 字段的“隐藏”属性,以便您可以看到其中的值。尝试使用以“6”开头的数字填充卡号,它将检测到 maestro,该字段将为填充,这个值'maestro'应该隐藏ccv。

我知道这可能是一个令人困惑的问题。但我已尽最大努力提供清晰的图片并制作了一个有效的小提琴。等待尽快回复。

谢谢

【问题讨论】:

  • 我在你的小提琴中看不到任何脚本

标签: javascript jquery html css forms


【解决方案1】:

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

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

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

当您设置隐藏字段值时,然后添加此代码行

编辑

在此处添加以上行

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

【讨论】:

  • 你能帮我弄小提琴吗?
  • 你的fiddle中没有添加JS
  • 试试这个jsfiddle.net/y8UKN/6我不知道你的业务逻辑测试你的逻辑,它工作吗?
  • 你做了什么改变吗?
  • 嗨。我已经在正文中添加了脚本。现在它的工作:)。非常感谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
  • 2014-05-13
  • 2013-04-06
  • 1970-01-01
  • 2011-03-29
  • 2014-06-27
  • 1970-01-01
相关资源
最近更新 更多