使用JQuery在TextField中显示信用卡品牌

时间:2014-05-29 22:06:03

标签: javascript jquery css ruby-on-rails

我有一个信用卡号的输入文本字段。我想在插入信用卡号时更改其图像背景。目标是展示其中的信用卡品牌。

我一直在努力的代码是:

function get_brand_image(){
  $.ajax({
    url: '/cards',
    type: "POST",
    dataType: "json",
    data: {code: $("#card_brand").val()},
    error: function(response){

    },
    success: function(response){
      $('#card_brand').css({background: "'url("+response['path']+") 0 no-repeat'", 'background-position': 'right'})
    }
  });   
}

上面的代码并没有将背景图片添加到我的文本中,尽管第二个哈希参数(' background-position':' right')是。

奇怪的是,如果我把原始命令放在一起:

$('#card_brand').css({background: 'url(/assets/cards/visa.png) 0 no-repeat', 'background-position': 'right'})

一切都按照预期完成。

连接字符串时是否会出现任何错误?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

$('#card_brand').css({background: 'url('+response['path']+') 0 no-repeat', 'background-position': 'right'});

试试这个。假设你没有混淆你的身份。

也:

alert(response['path']);

确保它是正确的链接。

这是一个有效的jsfiddle:

http://jsfiddle.net/Grimbode/9tRhw/1/

答案 1 :(得分:1)

试试这个 -

$('#card_brand').css({background: 'url(' + response["path"] + ') 0 no-repeat', 'background-position': 'right'});

如何学习连接字符串&变量(初学者)

所以基本上在字符串中使用变量的简单初学者技巧就是按原样写出整个字符串 -

$('#card_brand').css({'background': 'url(img/somepath) 0 no-repeat');

现在看看它的变量部分&包含整个字符串的单引号,a)首先使用您使用的相同引号包装变量部分,在这种情况下是单引号,所以你这样做 -

$('#card_brand').css({'background': 'url('img/somepath') 0 no-repeat');

现在使用concatenate +来包装变量部分

$('#card_brand').css({'background': 'url('+img/somepath+') 0 no-repeat');

最后用变量替换字符串 -

var pathVariable = 'img/somepath';
$('#card_brand').css({'background': 'url('+pathVariable+') 0 no-repeat');

答案 2 :(得分:0)

background:“'url(”+ response ['path'] +“)0 no-repeat'” 似乎存在语法错误,在尝试连接字符串时,您的代码包含太多且不必要的引号。应该是{background:“url(”+ response ['path'] +“)0 no-repeat”