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>

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())ですか?

クリックした画像の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

クリックした画像のタイトルを取得できる次のコードを確認してください。

シングルクリック

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

私の見方では、複数の送信ボタンがあります。送信時に関数を呼び出す代わりに、これらのボタンのクリック時に関数を呼び出して、ユーザーが選択したボタンに簡単にアクセスできるようにします。

$('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).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");
    });
});

フォームの送信アクションで、次の動作と yupee を追加します!... わかりました!....

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