Jquery国家/州Json等

Jquery国家/州Json等,jquery,Jquery,我正在努力实现以下目标: 我有一个乡村包厢 <select class="country singleListBox" name="Country"> <option value="UNITED STATES">UNITED STATES</option> <% Call GetCountry %> </select> 下面是它看起来是空的: { "regions": [ {

我正在努力实现以下目标:

我有一个乡村包厢

<select class="country singleListBox" name="Country">
    <option value="UNITED STATES">UNITED STATES</option>
    <% Call GetCountry %>
</select>
下面是它看起来是空的:

{
    "regions": [
        {
            "region": "empty"
        }
    ]
}
我试图做的是,当他们更改它发布到我的json页面的国家的值,并吐回找到的区域,或者将区域的字符串值保留为空

对我来说,诀窍是如果它返回一个区域列表,我需要将它构建到上面的
select->option
部分。但是如果它返回空,那么我需要一个文本类型的
输入框来代替
select->option

实现这一目标的最佳方式/最佳实践是什么?当他们改变国家时,我可以处理JSON的发布,我想我会遇到的问题是,当地区为空时,切换掉输入的select

我试图将其解析为jquery对象,但没有太大成功

$('select[name=Country]').change(function () {
                console.log(this.value);
                $.getJSON('message_center_getRegions.asp', { country: this.value }, function (json) {
                var options = '';
                var obj = $.parseJSON(json);
                console.log('count' + obj.regions.count);
                console.log(json); 
            })

I
console.log(json)
,它显示了一个包含62个不同区域的对象。当我选择一个数据库中没有地区的国家时,它会正确地显示为空。我似乎无法使obj不为null
console.log('count'+obj.regions.count)
表示obj为空

理想情况下,如果没有区域,则响应不应返回

"regions" : [ { "region" : "empty" } ]
它应该只返回这样一个空列表

"regions" : []
现在,当您将JSON解析为Javascript对象时,
regions.count
将为0

所以


理想情况下,如果没有区域,响应不应返回
“regions”:[{“region”:“empty”}]
。它应该只返回一个空列表,如下所示:[]@xbonez谢谢,我可以更改它。我不知道如何检查空json。这非常有意义,谢谢。创建HTML元素并隐藏它们并使用上面的代码隐藏/显示所需的内容是更好的,还是在jquery中创建整个元素更好?从未做过第二件事,不知道从哪里开始,如果这是更好的方法。理想情况下,您应该根据需要创建它们,这样您的DOM中就不会有不必要的元素。但是,DOM中有一个无关元素的效果并不明显。知道我在试图将其解析为对象时做错了什么吗?当您执行
getJSON
时,Jquery会自动将JSON字符串解析为JS对象。当我尝试执行
console.log(json.regions.count)
时,您不需要手动解析it.hrm,它说它未定义。我尝试过json.count、json.regions.region.count,但都没有定义。
"regions" : [ { "region" : "empty" } ]
"regions" : []
// parse response into JS object

if (regions.count > 0)
{
    //create select element here
}
else
{
    //input element here
}