Ajax返回值与下拉列表的值匹配并显示SELECTED值。腓

时间:2016-09-21 16:59:39

标签: php ajax

我正在做的是通过Ajax传递数据并将数据放入Dropdown。因此,当数据传递时,它应该与下拉列表中的选定值匹配,然后在选项上显示SELECTED,以便我们立即看到数据。因此,如果返回的数据是Product2,则Product2应该是SELECTED且可见。

<script type="text/javascript">
    function myFunction() {
        var skuvalue=document.my_form.modlistbox.value;
        $.ajax({ url: 'modify.php',
            data: {sku: skuvalue},
            type: 'post',
            dataType: "html",
            error: function (request, error) {
                console.log(arguments);
                alert("ERROR: " + error);
            },
            success: function(data) {
                var jsonvalue = $.parseJSON(data);
                console.log(jsonvalue);
                $(document).ready;
                $("#modsku").val(jsonvalue[0]);
                $("#modproduct").val(jsonvalue[1]).prop('selected', true); // I tried this and not working. Nothing is being SELECTED.
            }
        });
    };
</script>

<input type="text" name="modsku" id="modsku" maxlength="10">
<select name="modproduct" id="modproduct">
    <option></option>
    <option value="Product1">Product1</option>
    <option value="Product2">Product2</option>
    <option value="Product3">Product3</option>
</select>

我希望做的就是这样。

<select name="modproduct" id="modproduct">
    <option></option>
    <option value="Product1">Product1</option>
    <option value="Product2" selected>Product2</option>
    <option value="Product3">Product3</option>
</select>

1 个答案:

答案 0 :(得分:1)

这里的链式函数调用是多余的(并且在上下文中没有多大意义,尝试在selected元素上设置select属性:

$("#modproduct").val(jsonvalue[1]).prop('selected', true);

只需使用jQuery设置值,即可在select中设置所选选项:

$("#modproduct").val(jsonvalue[1]);

注意:此代码中还有其他一些内容没有任何意义。例如,这个:

$(document).ready;

它没有做任何事情,而且实际上只是一个错误的机会。因此,代码中可能存在其他问题,这些问题会阻止整体结果的发生。