javascript - Json 返回的 JQuery 更新选项

标签 javascript jquery json

所以我有这个 HTML 表单:

<select name="finder[4]" id="finder-2--4" class="pffield pf-make">
   <option value="0">Please Select...</option>
   <option value="52505">Alfa Romeo</option>
   <option value="52506">Audi</option>
   <option value="52499">BMW</option>
   <option value="52501">Ford</option>
</select>

我有这个 jQuery

<script type="text/javascript">
    jQuery("document").ready(function(){
        //console.log('on load');
    jQuery(".js-ajax-php-json").submit(function(){
        //console.log('post');
    var data = {
    "action": "test"
    };
    data = jQuery(this).serialize() + "&" + jQuery.param(data);
    jQuery.ajax({
    type: "POST",
    dataType: "json",
    url: "/reglookup.php", //Relative or absolute path to response.php file
    data: data,
        success: function(data) {
            console.log(data);
            console.log(data['make']);

            //$(".pf-make option:selected").text("Ford");
            //$(".pf-make option:contains(Ford)").attr('selected', true);
            //$(".pf-make option[text=" + data["make"] +"]").attr("selected","selected");
            $(".pf-make").val('52499');
            alert("Form submitted successfully.\nReturned json: " + data["make"]);
        }
    });
    return false;
    });
    });
</script>

我从 json 帖子中得到以下返回

Object {make: "Ford", model: "Focus", year: "2010", engine: 2.5, fuel: "Petrol"}

因此,当这些日志记录在控制台中时,发布和回调工作正常,并且我需要能够获取回调的 make 数据 [“make”] 并更新选择表单中的选定选项。

您可以看到我尝试了许多不同的选项,甚至在代码中手动输入“Ford”,但我似乎总是在控制台中收到以下错误:

(index):221 Uncaught TypeError: Cannot read property 'val' of null

对于我的一生来说,我现在无法让这个工作。

最佳答案

使用contains获取选项值,然后设置select:-

var ford = $('.pf-make option:contains("Ford")').val();

$('.pf-make').val(ford);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="finder[4]" id="finder-2--4" class="pffield pf-make">
   <option value="0">Please Select...</option>
   <option value="52505">Alfa Romeo</option>
   <option value="52506">Audi</option>
   <option value="52499">BMW</option>
   <option value="52501">Ford</option>
</select>

关于javascript - Json 返回的 JQuery 更新选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624720/

相关文章:

javascript - 获取函数的变量值而不全局设置它

javascript - 动态更改 jquery 对话框的标题,不从选择下拉列表中获取缓存数据

javascript - 在浏览器中查看 JSON 文件

javascript - 如何将 google api 免费翻译为以 json 格式返回?

javascript - Lint 双逗号数组

javascript - (是的)如何使用单个 .test() 函数创建多个错误

jquery - Show() 和隐藏表行

jquery - 如何将一个 div 中的图像来源获取到另一个 div?

javascript - 如何将相同的值放入同一数组元素中

javascript - xmlHttpRequest 和跨站限制