3

我有一个提交类型数量为图像的表单。每张图片都有不同的标题。我需要找出点击图像的标题。但是我在表单提交中的点击功能不起作用。

我的表格是:

  <form action='log.php' id='logForm' method='post' >
  <?
   for($j=1;$j<=5;$j++)
   {
    ?>
   <input type="image" src="<?=$img;?>" title="<?=$url;?> id="<?="image".$j?> class="images" />
    <?
    }
    ?>
   </form>

查询:

    $("#logForm").submit(function(e)
    {


  $(".advt_image").click(function(event) {
        var href=event.target.title;
    });





           var Form = { };
            Form['inputFree'] = $("#inputFree").val();
         //   if($("#freeTOS").is(":checked"))
                    Form['freeTOS'] = '1';

            $(".active").hide().removeClass('active');
            $("#paneLoading").show().addClass('active');


var url="http://"+href;

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

                     setTimeout( function() {  location=url }, 2500 );


                    return;




                    }

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

            return false;
    });

如何在其中获取单击图像的标题值$("#logForm").submit(function())

我怎样才能使用点击图像的 id 呢?

4

5 回答 5

3

你可以使用event.target属性

$("#logForm").submit(function(e)
    alert($(e.target).attr('title'));
});

http://api.jquery.com/event.target/

[更新]

我才意识到这行不通。我不认为有一个简单的解决方案。您必须跟踪输入上的点击事件并稍后使用它。

jQuery提交,我怎么知道按下了哪个提交按钮?

$(document).ready(function() {
    var target = null;
    $('#form :input[type="image"]').click(function() {
        target = this;
        alert(target);
    });
    $('#form').submit(function() {
        alert($(target).attr('title'));
    });
});

[更新 2] -.focus不工作,但.click工作 http://jsfiddle.net/gjSJh/1/

于 2012-07-03T05:20:30.867 回答
0

在我看来,您有多个提交按钮。无需在提交时调用该函数,而是在单击这些按钮时调用它,以便您可以轻松访问用户选择的那个:

$('input.images').click(function(e) {
    e.preventDefault(); //stop the default submit from occuring
    alert($(this).attr('title');

   //do your other functions here.

});
于 2012-07-03T05:44:58.867 回答
0

检查以下代码,您可以获得点击图像的标题。

单击

$(document).ready(function()
{
    $('#logForm').submit(function(e){
         $(".images").click(function(event) {
            alert(event.target.title);
        });

        return false;
    });
});

双击

$(document).ready(function()
{
    $('#logForm').submit(function(e){
         $(".images").dblclick(function(event) {
            alert(event.target.title);
        });

        return false;
    });
});
于 2012-07-03T05:56:29.717 回答
0

// 所有元素的运行时点击事件

$(document).on('vclick', '.control', function (e) { // .control is classname of the elements
    var control = e.target;
    alert(e.currentTarget[0].id);
});

如果您在警报中没有收到正确的消息,只需使用 Firebug 进行调试。

于 2012-07-03T06:07:37.117 回答
0

在渲染页面中添加以下 ondomready

$(document).ready(function(){
    $("form input[type=image]").click(function() {
        $("input[type=image]", $(this).parents("form")).removeAttr("clicked");
        $(this).attr("clicked", "true");
    });
});

现在在表单的提交操作中添加以下行为和 yupeee!...你明白了!....

$("#logForm").submit(function(e)
    {
        var title = $("input[type=image][clicked=true]",e.target).attr("title");
        .....
        .....
    });
于 2012-07-03T11:12:32.613 回答