首页 文章

ajax调用后的选定值集

提问于
浏览
3

我有一个表格,其中两个选择是相关的 . 从第一个中选择一个值后,将触发ajax调用以恢复第二个值 . 我使用此表单来插入和编辑数据 . 第一种情况都很顺利 . 编辑反而不合作,因为当我尝试设置第二个选择的选定值时,操作不显示任何内容 . 这是代码:

HTML

<select class="inputtext" id="category" name="category" onchange="loadsub(); return false;">
    <option value="0"> -- </option>
    <?php code to load the values ?>
</select>   

<strong>Subcategory</strong> <select class="inputtext" id="subcategory" name="subcategory"> <option value="0"> -- </option> </select>

AJAX

function open(id, edit) {
    $('#prod').css("display", "block");
    request= 2;
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "ajax/prod.php",
        data: {
            id: id,
            richiesta: request
        },
        async: true,
        success : function(data) {
            var i = 0;
            var tmp = '';

            if (data) {
                while(i<data.length) {
                    $('#category option[value="'+data[0]['categoria']+'"]').attr('selected', 'selected');
                    loadsub();
                    subcat= data[0]['subcategory'];
                    if (edit == 1) {
                        $('#categoria').attr("disabled", true);
                        $('#sottocategoria').attr("disabled", true);
                    }
                    i++;
                }               
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { 
            //alert("Status: " + textStatus);
            //alert("Error: " + errorThrown); 
        },
        complete: function () {
            $('#subcategory option[value="' + subcat + '"]').attr('selected', 'selected');
        }
    });
}

2 回答

  • 0

    不要使用select标签来显示ajax视图使用div或其他标签 . 因为已经选择了ajax页面中使用的标签
    像你的例子

    <select class="input text" id="category" name="category" on change="load sub(); return false;">
        <option value="0"> -- </option>
        <?  code to load the values ?>
    </select>   
    
    <strong>Subcategory</strong>                
    <div class="input text" id="subcategory" >
        here is your ajax call
    </div>
    
  • 0

    您应该使用$.fn.val(value)来估值并将其移动到成功回调方法的结尾

    success : function(data) {
            //Your code
            if(subcat){
                $('#subcategory').val(subcat);
            }
        },
    

    我建议你开始使用$.fn.prop() intsead $.fn.attr()来设置属性 . 好读.prop() vs .attr()

    设置 disabled 使用

    $('#categoria').prop("disabled", true); //true to disable or false to enable
    

相关问题