选择onChange预览svg

时间:2015-07-29 16:39:02

标签: javascript jquery html svg

我没有html经验,也没有java经验,并且在选择选项后尝试显示SVG图像。目前代码在此处,显示gif图像:

<SELECT NAME=SIGN_NFPA onchange=\"
  this.form.SIGN_PIC1.selectedIndex = 0;
  var id = this.options[this.selectedIndex].value
  var lnk = (id) ? 'SignNFPA/'+id+'.gif' : 'images/blank.gif';
  window.document.SIGN_PIC1.src = lnk;
  return true;
\">

现在我们正在生成文件,并希望用这行代码替换它

<SELECT NAME=SIGN_NFPA onchange='$("img[name=SIGN_PIC1]").prop('src',"SignNFPA?nfpa="+this.value);'>

但我一直收到语法错误,我做错了什么?我知道它应该是onchange中的一个函数,但我的同事说你可以直接输入代码。感谢。

3 个答案:

答案 0 :(得分:0)

您的直接问题是围绕&#34; src&#34;的嵌套单引号。这导致它将onchange='$("img[name=SIGN_PIC1]").prop('视为完整属性,然后是垃圾。

将这些更改为兼容的引号集:

<SELECT NAME=SIGN_NFPA onchange='$("img[name=SIGN_PIC1]").prop("src","SignNFPA?nfpa="+this.value);'>

但这可以理解为更多&#34;标准&#34;像这样:

<SELECT NAME="SIGN_NFPA" onchange="$('img[name=SIGN_PIC1]').prop('src','SignNFPA?nfpa='+this.value);">

因为你正在使用jQuery ,我强烈建议转向使用jQuery事件处理程序和适当的data-属性,而不是使用内联处理程序。

e.g。类似下面的内容(没有检查错误 - 只是一个指南)

HTML:

<SELECT NAME="SIGN_NFPA" \>

的jQuery

$(function(){
   $('[name="SIGN_NFPA"]').change(function(e){
       var $signpic1 = $('[name="SIGN_PIC1"]')
       $signpic1.val(0);
       var id = $(this).val();
       var lnk = (id) ? 'SignNFPA/'+id+'.gif' : 'images/blank.gif';
       $signpic1.attr("src", lnk);
   });
});

答案 1 :(得分:0)

在HTML中添加属性时使用引号。特别是价值

<select name="SIGN_NFPA">
  <!--options-->
</select>

在jquery中使用event Handler

$(document).ready(function() {
    $("select[name='SIGN_NFPA']").change(function() {
        $('img[name=SIGN_PIC1]').prop('src', 'SignNFPA?nfpa=' + this.value);
    })
});

答案 2 :(得分:0)

原来是因为我引用地狱,可能应该提到这一点,但我对编程比较陌生。我在使用html的perl文件中使用jquery并且$ sign被解释为标量,导致语法错误。同时引用地狱