以下代码应该更新表单提交上的隐藏字段,但它根本没有,我很难知道为什么?
代码段:
<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>
答案 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/