-1

私はjqueryモバイルに5つのボタン(getでページに入力しています)を持っています。そのボタンをクリックすると、押されたボタンの値で同じページに投稿が送信されます

        <div class="ui-grid-b">
            <div data-role="button" id="attack" value="attack" >Attack</div>
            <div data-role="button" id="intercept" value="intercept" >Intercept</div>
            <div data-role="button" id="follow" value="follow">Follow</div>
            <div data-role="button" id="go" value="go">Go</div>
            <div data-role="button" id="send_backup" value="send_backup">Send Backup</div>
        </div>

これをフォーム内に配置しようとしましたが、すべてのボタンに type="submit" がありますが、機能しません。各ボタンをクリックして投稿を送信する方法は?

4

2 に答える 2

1

コードは次のようになります。

$('*[data-role="button"]').on('click',function(){

  var dataForm = $('form').serializeArray(); // if you need to send form data
  dataForm.push({name: 'action', value:$(this).attr('id')}); //add your button value

  $.ajax({
    type: "POST",
    url: window.location.pathname,
    data: dataForm
  })
  .success(function() { alert("success"); })
  .error(function() { alert("error"); });
});

ここで実際の例を見ることができます

したがって、「[data-role="button"]」セレクターを使用してから、ボタンの ID を使用して ajax リクエストを送信する必要があります。

フォーム データを取得するには、serializeArray()を使用して、クリックしたボタンの値も追加します。

于 2013-01-09T13:14:43.243 に答える
1

あなたの問題に対する最善の解決策は、関数をバインドしてボタンで実行し、押されたボタンを処理することだと思います。このようなもの:

$('.ui-grid-b div[data-role="button"]').click(function() {  
    var button_clicked = $(this).attr('id');
});

button_clickedクリックしたばかりのボタンのIDが含まれるので、好きなように使用できます...

于 2013-01-09T13:11:25.673 に答える