2013-11-04 90 views
0

我试图将图像src设置为从我的窗体传递的隐藏变量。当我输出变量是“未定义”。我对JavaScript很新,不确定问题可能出在哪里。我的错误是路线:将Img Src保存为Javascript变量

document.sampleForm.image.value = "images/"+img.attr('src')+"";

的Javascript:

$('tr', '#target').each(function() { 
    var tr = $(this); 
    html += '<center><tr>'; 
    $('td', tr).each(function() { 
     var td = $(this); 
     if (!td.is('td.header')) { 
      var img = $('img', td); 
      var text = $('textarea', td).val(); 
      html += '<td style="width: 33%;">'; 
      html += (img.length) ? '<img src="' + img.attr('src') + '" style="display: block; max-width: 100%;" />' : '<div style="width: 100%;"></div>'; 
      document.sampleForm.image.value = "images/"+img.attr('src')+""; 
      document.forms["sampleForm"].submit(); 
      html += '</td>'; 
     } 
    }); 
    html += '</tr></center>'; 
}); 

HTML:

<table id="target"> 
<form id="sampleForm" name="sampleForm" action="test.php" method="post"> 
    <tr><center> 

     <td class="logo" colspan="3"> 
      <h3>Choose Header</h3> 
      <div class="img-container"><input type="hidden" name="image" id="image" value=""></div> 

     </td> 

    </center> 
    </tr> 
    <tr> 
    <td style="height:auto;"> 

    <?php 

    $test = mysql_query("SELECT id, title FROM tmpl2"); 



    echo "<select class='image_select' id='logo_option' name='logo_option[]' multiple='multiple'>"; 


     while ($row = mysql_fetch_assoc($test)) 
    { 
     echo "<option value='".$row[id]."'>$row[title]</option>"; 
    } 


    echo "</select>"; 



    ?> 



    </td> 
    </tr> 


      <tr><center> 

     <td class="logo" colspan="3"> 
       <h3>Choose Logo</h3> 
      <div class="img-container"></div> 

     </td> 

    </center> 
    </tr> 
    <tr> 
    <td style="height:auto;"> 
    <?php 

    $test = mysql_query("SELECT id, title FROM tmpl2"); 

    echo "<select class='image_select' id='header_option' name='header_option[]' multiple='multiple'>"; 


     while ($row = mysql_fetch_assoc($test)) 
    { 
     echo "<option value='".$row[id]."'>$row[title]</option>"; 
    } 


    echo "</select>"; 

    ?> 
    </td> 
    </tr> 

</table> 
+3

在循环内部执行'submit'没有任何意义。当您提交表单时,页面会重新加载,并且脚本停止。 – Barmar

+0

使用jquery函数attr:'$(“your_input”).val(“images /”+ img.attr('src'));'更多详细信息请添加代码 –

+0

Barmar - 是的,那是一个复制错误。我已经更新了代码。 Sabri - 我已更新我的帖子以显示我的HTML。 – 626

回答

1

你越来越不确定的原因是因为

document.sampleForm.image.value = "images/"+img.attr('src')+""; 

是不是HTMLImageElement的财产。你需要.src

document.sampleForm.image.src = "images/"+img.attr('src')+""; 

但是@Barmar说你真的不应该这样做。

+0

有没有其他建议将图片网址保存到帖子变量的方法?使用img.src不起作用,它为我输出一个空白。 – 626