Metasearch - Справка по запросу jquery ajax, когда установлен флажок - PullRequest
0 голосов
/ 01 августа 2011

Я хочу сделать ajax-запрос Jquery, когда флажок установлен в true или false.

Моя форма:

<form method="get" action="/" accept-charset="UTF-8"><div style="margin: 0pt; padding: 0pt; display: inline;"><input name="utf8" value="✓" type="hidden"></div>        
    <div class="menuitem">
    <label for="search_company1">company1</label>
    <input name="search[company1_is_true]" value="0" type="hidden"><input id="search_company1_is_true" name="search[company1_is_true]" value="1" type="checkbox">
    </div>
    <div class="menuitem">
    <label for="search_company2">company2</label>
    <input name="search[company2_is_true]" value="0" type="hidden"><input id="search_company2_is_true" name="search[company2_is_true]" value="1" type="checkbox">
    </div>
    <div class="menuitem">
    <label for="search_company3">company3</label>
    <input name="search[company3_is_true]" value="0" type="hidden"><input id="search_company3_is_true" name="search[company3_is_true]" value="1" type="checkbox">
    </div>
<input id="search_submit" name="commit" value="Create Search" type="submit">
</form>

Ответы [ 3 ]

2 голосов
/ 01 августа 2011

Это запускает пользовательскую функцию doAjaxRequest после того, как любой из флажков в классе menuitem изменяется на true или false.

$('.menuitem input:checkbox').change(function(){
  doAjaxRequest();
})

Ответ на вопрос первого комментария:

$('.menuitem input:checkbox').change(function(){
      $('form').submit();
})

Хотя вывероятно, вы хотите определить какой-то идентификатор для вашей формы и использовать его вместо простого селектора формы: $ ('# formId')

EDIT Я только что сделал jsfiddle из вашего кода, о котором идет речь, и мой второйответьте и похоже на работу: http://jsfiddle.net/dUPmg/

1 голос
/ 01 августа 2011

Должно быть довольно тривиальной задачей:

$('form input:checkbox').change(function() { 
    // $.ajax({});
    $('form').submit();
});

Это связывало бы обработчик события-изменения с каждым элементом флажка.Когда число этих элементов увеличивается, вы должны вместо этого перейти к делегированному событию изменения.

$('form').delegate('input:checkbox', 'change', function( e ) {
    switch( e.id ) { 
        case 'search_company1_is_true':
             $.ajax({});
             break;
        case 'search_company2_is_true':
             $.ajax({});
             break;
        // and so forth
    }
});
0 голосов
/ 01 августа 2011
$('form input:checkbox').bind('click change', function(){
    $.ajax({
      url: "/test.html",
      success: function(){
          $(this).addClass("done");
      }
    });
});
...