输入类型图像URL值通过jquery

时间:2012-07-03 00:17:01

标签: php jquery forms

我有一个包含多个输入类型图像的表单。当用户点击任何图片时,我需要将网页位置替换为图片的网址。

形式就像,

<form action='free.php' id='freeForm' method='post' autocomplete="off">
<?
for($j=1;$j<=5;$j++)
{
?>
<a href="<?=$url;?>" class="anchor-url"> <input type="image" src="<?=$img;?>" /></a>
 <?
 }
 ?>
 </form>
来自数据库的

$ img和$ url值。

我的jquery就像,

$("#freeForm").submit(function()
    {
            var Form = { };
            Form['inputFree'] = $("#inputFree").val();

                    Form['freeTOS'] = '1';



              $('.anchor-url').click(function(e){
             e.preventDefault();
              alert($(this).attr('href'));
           });


            $.post('processFree.php', Form, function(data)
            {
                    if(data == "Success")
                    {
                            $("#FreeErrors").html('').hide();
                            swapToPane('paneSuccess');
                            return;
                    }

                    swapToPane('paneFree');
                    $("#FreeErrors").html(data).show();
            });

            return false;
    });

现在,当我点击每张图片时,我会收到'http://au.yahoo.com'。但我想用每张图片的网址替换“http://au.yahoo.com”。如何将PHP变量$ url传递给此表单? 有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这个应该工作,如果我理解你要求的正确,虽然我没有尝试过。基本上,您将click事件绑定到每个图像,然后单击它会使用所点击的src元素的input属性中的值替换窗口位置。

$('input[type=image]').click(function(e){
  e.preventDefault();
  window.location.replace($(this).attr('src'));
});

修改

首先,您应该为锚元素添加一个类名:

<form action='free.php' id='freeForm' method='post' autocomplete="off">
<?
for($j=1;$j<=5;$j++)
{
?>
<a href="<?=$url;?>" class="anchor-url"> <input type="image" src="<?=$img;?>" /></a>
 <?
 }
 ?>
</form>

你的JS:

$('.anchor-url').click(function(e){
  e.preventDefault();
  window.location.replace($(this).attr('href'));
});

注意我是如何在锚链接中添加一个类的。这可以命名几乎任何东西。这使您能够使用$('。any-classname')选择器仅使用jQuery选择具有该类名的元素。