3

問題が解決しました

このような問題について、いくつかの情報源を検索しました。しかし、正確な解決策はありません。問題は、ajax を使用してチェックボックスの値を div id に渡すことができないことです。親ウィンドウで開き続けます。これが私のコードです。

Javascript:

<script type="text/javascript">
$(document).ready(function() {  
    $("#villa_submit").click(function() {   
        var action = $("#villa_choose").attr('action');
//var form_data = { 'vid[]' : []};$("input:checked").each(function() {data['vid[]'].push($(this).val());});
var form_data = $('#villa_choose').serialize();  //suggested by Kev Price 
        $.ajax({
            type: "POST",
            url: action,
            data: form_data,
            beforeSend:function(){
                $('#villa_result').html('<center><img src="/images/loading.gif" alt="Loading..." align="absmiddle"/> loading...</center>');
              },
            success: function(data){
                  $('#test_result').html(data);
            }
        });     
        return false;
    }); 
});
</script>

HTML:

<form name="villa_choose" id="villa_choose" method="post" action="">
<input type="checkbox" name="vid[]" id="vid1" value="1" />
<input type="checkbox" name="vid[]" id="vid2" value="2" />
<input type="checkbox" name="vid[]" id="vid3" value="3" />
<input type="checkbox" name="vid[]" id="vid4" value="4" />
<input type="checkbox" name="vid[]" id="vid5" value="5" />
</form>

<div id="test_result"></div>
4

3 に答える 3

3

これと同じ属性を持つ複数の<input>要素があります。idこれは許可されていidません。ドキュメント内で一意である必要があります。それを修正して、再試行してください。

于 2012-11-08T17:16:48.100 に答える
3

Madbreaksが提案した問題を修正したら、jqueryでチェックボックスの値をこのような配列に取得できます

var values = $("input[type='checkbox']:checked").map(function () {
    return this.value;
}).get();

values will be an array that you can pass with ajax like this

var data = 'checkbox="'+values+'"';
$.ajax({
    url: "process.php",
    type: "GET",
    data: data,
    cache: false,
    success: function (html) {
        ... // change html on return
    }
});

それが役立つことを願っています

于 2012-11-08T17:23:43.573 に答える