-2

jsでフォームを送信するので、フォームアクションをパッシベートしたいです。しかし、フォーム アクション js が機能せず、ページがアクション URL をリダイレクトする場合。フォームタグを削除し、#combination id の div タグを配置しましたが、どちらの js も機能しませんでした:

  $("#combination").submit(function(){
  var url = "www.myurl.com/?view=listen&";

  var i = 0;
  $("input:checked").each(function(){
      url += "tag[" + i + "]" + $(this).val() + "&";
      i++;
  });
  alert(url);
  location.href = url;

});

html:

    <form id="combination" action="" method="get" name="combination" target="_self">
    <?php foreach($top_tags as $top_tag):?>
        <input type="checkbox" name="tag[]" value="<?php echo $top_tag['tag_name'];?>" /><?php echo $top_tag['tag_name'];?><br />
        <?php endforeach;?> 
    <input name="" type="submit">
    </form>
4

2 に答える 2

2

「preventDefault」を使用してフォームのデフォルトの動作を防止し、ajax-call などを開始する必要があります;)。

$("#combination").submit(function(event){
  event.preventDefault();
  var url = "www.myurl.com/?view=listen&";

  var i = 0;
  $("input:checked").each(function(){
      url += "tag[" + i + "]" + $(this).val() + "&";
      i++;
  });
  alert(url);
  location.href = url;

});
于 2012-11-28T16:22:15.927 に答える
0

この方法でハンドラーを実際に呼び出すことができなかった問題:

http://api.jquery.com/submit/

handler(eventObject)イベントがトリガーされるたびに実行する関数。

基本的に何が起こったのか、フォームを送信する代わりにリダイレクトを行いました。

チェーンについて考えてみましょう:

  1. jqueryを使用して、フォームのsubmitメソッドを呼び出します。
  2. イベントがフォームに対してトリガーされている間、ただしフォームが実際に送信される前に、場所を変更します。
  3. これにより送信がキャンセルされ、代わりに何にでもリダイレクトされます

本当にこの方法でやりたい場合は、次の 2 つの方法で行うことができます。

  1. フォーム送信後のサーバー側のリダイレクト
  2. ajax http://api.jquery.com/jQuery.ajax/を使用してハンドラーに送信し、いずれかの方法でデフォルトのアクションを無効にすると言われました

    $("#combination").submit(function(event){
        event.preventDefault();
        // code here
    });
    

    また

     $("#combination").submit(function(event){
        // code here
        return false;
     });
    
于 2012-11-28T16:26:20.493 に答える