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);
})
Iconsole.log(json)
,它显示了一个包含62个不同区域的对象。当我选择一个数据库中没有地区的国家时,它会正确地显示为空。我似乎无法使obj不为nullconsole.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
}