2012-07-03 2 views
2

У меня есть форма с номером типа отправки в виде изображений. Каждое изображение имеет другое название. Мне нужно узнать название щелкнутого изображения. Но моя функция click внутри формы submit не работает.Функция jquery click внутри формы отправьте функцию

Моя форма:

<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> 

Jquery:

$("#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())?

Как я могу использовать идентификатор щелкнутого изображения для этого?

+0

Что с отступы? – elclanrs

ответ

2

Вы можете использовать event.target свойство

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

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

[UPDATE]

Я просто понял, что это не будет работать. Я не думаю, что это простое решение. Вы должны отслеживать событие клика на входе и использовать его позже.

jQuery submit, how can I know what submit button was pressed?

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

[Update 2] - .focus не работает, но .click работает http://jsfiddle.net/gjSJh/1/

+0

Спасибо вам за ответ. Я новичок в jquery. не могли бы вы привести мне пример? могу ли я использовать это event.target внутри $ ("# logForm").submit (function() {}); ? – Zendie

+0

спасибо Joyce Babu..Позвольте мне попробовать – Zendie

+0

Извините. Сообщение не заполнено :( – Zendie

0

То, как я вижу, у вас есть несколько кнопок отправки. Вместо вызова функции представить, вызовите его нажатием этих кнопок, так что вы можете легко получить доступ к одному пользователю выбрали:

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

    //do your other functions here. 

}); 
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; 
    }); 
}); 
+0

.images - это тип изображений входного типа? – Zendie

+0

Ya вы можете получить титул щелкнув изображения, используя класс – Hkachhia

+0

Plz полная двойная кровать названия и идентификатор изображений в вашем для lo op – Hkachhia

0

// время выполнения события щелчка для всех элементов

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

если вы не получаете соответствующее сообщение в боевой готовности , просто отлаживать используя Firebug.

0

добавить следующие ondomready на странице рендеринга

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

Теперь в действии submitt вашей формы добавить follwing поведение и yupeee! ... Вы получили это! ....

$("#logForm").submit(function(e) 
    { 
     var title = $("input[type=image][clicked=true]",e.target).attr("title"); 
     ..... 
     ..... 
    }); 
Смежные вопросы