JQuery没有更新隐藏字段

时间:2012-01-24 19:47:44

标签: php jquery

以下代码应该更新表单提交上的隐藏字段,但它根本没有,我很难知道为什么?

代码段:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="/js/jquery.easing.1.3.js" type="text/javascript"></script>
<script src="/js/jquery.slideviewer.1.2.js" type="text/javascript"></script>

UPDATE 更改了建议的代码,请参见下文,但仍然没有喜悦 - 也尝试了img:首先按照建议但没有不同

<script type="text/javascript">
  $(document).ready(function(){
        $( "#wl_add" ).submit( function ( event ) { /* form name wl_add */
          $( this ).find( "input[name='item_pic_url']" )
                   .val( $( "#mygalthree img" ).attr( 'src' ) );
          } );
  });
</script>

<div id="mygalthree" class="svw"><ul>
<?PHP

foreach($html->find('img') as $e){ // from simple_html_dom

    $image = $e->src;

    echo '<li><img src="'.$image.'" width=300 alt="" /></li>';
    echo '<input type="hidden" name="item_pic_url" value="'.$image.'" />';

?>

</ul></div>

3 个答案:

答案 0 :(得分:4)

您应该在document.ready中设置事件处理程序。

<script type="text/javascript">
$(function(){
     $( "#wl_add" ).submit( function ( event ) { /* form name wl_add */
     $( this ).find( "input[name='item_pic_url']" )
     .val( $( "#mygalthree img" ).attr( 'src' ) );

     } );
});
</script>

否则,脚本将尝试将submit绑定到尚不存在的表单,因此您不会获取绑定和执行的提交处理程序。

答案 1 :(得分:0)

假设php循环不止一次运行,由于所有输入具有相同的名称,因此在识别图像和输入时会出现问题,因为有多个元素$( "#mygalthree img" )和多个input[name='item_pic_url']

修改:为了澄清一下,如果您查看.attr的手册,您会看到:

  

.attr()方法仅获取匹配集中第一个元素的属性值。

所以在你的代码中:

 $( this ).find( "input[name='item_pic_url']" )
   .val( $( "#mygalthree img" ).attr( 'src' ) );

您将隐藏的输入元素的全部值设置为第一张图片的来源。

答案 2 :(得分:0)

尝试更改行:

$(this).find.....

为:

$('input[name="item_pic_url"]').val($('#mygalthree img').attr('src'));

这是一个通过jsfiddle的简单示例。 http://jsfiddle.net/9DTUD/1/