Javascript Json返回中的JQuery更新选项

Javascript Json返回中的JQuery更新选项,javascript,jquery,json,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>

我有一个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>
因此,post和回调在控制台中登录后工作正常,我需要能够获取回调的make数据[“make”]并在select表单中更新所选选项

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

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

jQuery
代替
$
使用
jQuery
,也用
代替数据[“make”]
数据。make

代替
$
使用
jQuery
,也用
代替
数据[“make”]
数据。使用
包含
获取选项值,然后设置选择:-

var ford=$('.pf make选项:包含(“ford”)).val();
$('pf make').val(福特)

请选择。。。
阿尔法罗密欧
奥迪
宝马
河流浅水处

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

var ford=$('.pf make选项:包含(“ford”)).val();
$('pf make').val(福特)

请选择。。。
阿尔法罗密欧
奥迪
宝马
河流浅水处

一个简单的解决方案是迭代选项以找到匹配的文本,然后访问其值

var $select = jQuery('.pf-make');
var value = 0;
$select.find('option').each(function(){
    if(jQuery(this).text() == data.make){
        value = jQuery(this).val();
        return false;
    }
});
$select.val(value);

一个简单的解决方案是迭代选项以找到匹配的文本,然后访问其值

var $select = jQuery('.pf-make');
var value = 0;
$select.find('option').each(function(){
    if(jQuery(this).text() == data.make){
        value = jQuery(this).val();
        return false;
    }
});
$select.val(value);

请参阅此更新的代码。请注意,它使用ID而不是类名,以使其更具体

<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) {
            jQuery("#finder-2--4").val(data.make);
        }
    });
    return false;
    });
    });
</script>

jQuery(“文档”).ready(函数(){
//console.log(“加载”);
jQuery(“.js ajax php json”).submit(函数(){
//console.log('post');
风险值数据={
“操作”:“测试”
};
data=jQuery(this.serialize()+“&”+jQuery.param(data);
jQuery.ajax({
类型:“POST”,
数据类型:“json”,
url:“/reglookup.php”,//response.php文件的相对或绝对路径
数据:数据,
成功:功能(数据){
jQuery(“#finder-2--4”).val(data.make);
}
});
返回false;
});
});

查看此更新的代码。请注意,它使用ID而不是类名,以使其更具体

<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) {
            jQuery("#finder-2--4").val(data.make);
        }
    });
    return false;
    });
    });
</script>

jQuery(“文档”).ready(函数(){
//console.log(“加载”);
jQuery(“.js ajax php json”).submit(函数(){
//console.log('post');
风险值数据={
“操作”:“测试”
};
data=jQuery(this.serialize()+“&”+jQuery.param(data);
jQuery.ajax({
类型:“POST”,
数据类型:“json”,
url:“/reglookup.php”,//response.php文件的相对或绝对路径
数据:数据,
成功:功能(数据){
jQuery(“#finder-2--4”).val(data.make);
}
});
返回false;
});
});

@VelimirTchatchevsky-我不知道你在这里指的是什么,我不擅长jQuery。@VelimirTchatchevsky-我不知道你在这里指的是什么,我不擅长jQuery。在jQuery 1.7中有没有办法做到这一点?我仍然得到(索引):218 Uncaught TypeError:在插入代码的情况下无法读取null的属性“val”-但我可以看到它在使用2.2.1Ahh的示例中起作用-jQuery而不是$Use caution与此答案一起使用。可能存在一个潜在的XSS漏洞。@MrCode就我将来的知识而言,它是如何成为XSS漏洞的?在jQuery 1.7中有没有办法做到这一点?我仍然得到(索引):218 Uncaught TypeError:在插入代码的情况下无法读取null的属性“val”-但我可以看到它在使用2.2.1Ahh的示例中起作用-jQuery而不是$Use caution与此答案一起使用。可能存在一个潜在的XSS漏洞。@MrCode就我将来所知,它是如何成为XSS漏洞的?关于
$(this)呢。selected=true
而不是
value=$(this.val()?关于<代码>$(此项)如何。所选=真
而不是
value=$(this.val()?此方法将假定data.make是选项的ID,不是吗?此方法将假定data.make是选项的ID,不是吗?