附加ajax生成的内容后jQuery实时问题

时间:2011-03-09 14:06:57

标签: jquery

我正在尝试使用jQuery-ajax和PHP动态生成表单。 对于我从ajax请求获得的输入,我使用live / livequery附加了一个jQ处理程序。当我输入一个通过ajax的复选框类型输入时,问题就出现了,另一个输入类型=带有2个选项的无线电。当我选择其中一个无线电选项时,它不会向服务器发送正确的父ID,而是发送复选框ID,从而返回相同的输入无线电设备。

jQuery代码(包含在文档中):

$(function(){
            $('.input_camp :input').live('change',function(){
                $camp = $(this);
                type = $camp.get(0).tagName;
                referinta = '';
                switch(type){
                    case 'SELECT':
                        referinta = $(this).find("option:selected").val();
                    break;
                    case 'INPUT':
                        type2 = $camp.attr('type');
                        if(type2 == 'radio'){
                            referinta = $(this+":checked").val();
                        }else if(type2 == 'checkbox'){
                            var allVals = [];
                            $(this+':checked').each(function(){
                                allVals.push($(this).val());
                            });
                            referinta = allVals;
                        }
                    break;
                }
                $.ajax({
                    type: "POST",
                    url: "ajax.php?actiune=dependente",
                    data: "referinta="+referinta,
                    success: function(response){
                        $camp.parent('div.input_camp').next('div.dependente').html(response);
                    }
                }); 
            }); 
        });

这是表单的起始代码:

<div class="camp">
            <div class="label_camp">
                <label for="camp26">judet: </label>
            </div>
            <div class="input_camp">
        <input type="checkbox" class="radio " id="camp3" value="12" name="camp3">
        <label for="camp3">j.1</label><br>
        <input type="checkbox" class="radio " id="camp3" value="13" name="camp3" checked="checked">
        <label for="camp3">j.2</label><br>
            </div>
            <div style="" class="dependente"></div>
        </div>

正如我所说,在检查第二个复选框后,ajax在div.dependente标记内返回以下代码:

ajax请求:“ajax.php?referinta = 13”。

ajax回复:

<div class="camp">
            <div class="label_camp">
                <label for="camp27">localitate: </label>
            </div>
            <div class="input_camp">
        <input type="radio" class="radio " id="camp4" value="16" name="camp4">
        <label for="camp4">L.2.1</label>
        <input type="radio" class="radio " id="camp4" value="17" name="camp4" checked="checked">
        <label for="camp4">L.2.2</label>
        <input type="radio" class="radio " id="camp4" value="18" name="camp4">
        <label for="camp4">L.2.3</label>
            </div>
            <div style="" class="dependente"></div>
        </div>

到目前为止,这么好。接下来,我需要选择一个可用的无线电。无论选择何种输入,ajax请求都与之前相同,因此响应相同。

0 个答案:

没有答案