我可能以最糟糕的方式做到这一点,但我正在尝试a)根据从社交网络插件接收的数据选择下拉选项,并且b)强制onchange事件以使连续的dropmenus出现并填充。
我正在处理国家,州和城市数据。在页面加载时,国家/地区下拉菜单会自动填充两个选项:墨西哥和美国。选择一个时,状态下拉列表会自动填充,一旦选择了状态,城市下拉列表就会填充。
这是标记:
<tr>
<td id="field-country" class="tags-form"></td>
<td><select onchange="CreateCountries.getRegions(this.value);"
name="country_id" id="country_id" value="" style="width: 130px;"
class="campos-tabla"></select></td>
</tr>
<tr>
<td id="field-state" class="tags-form"></td>
<td><select onchange="CreateCountries.getCities(this.value);"
name="state_id" id="state_id" value="" style="width: 130px;"
class="campos-tabla"></select></td>
</tr>
<tr>
<td id="field-city" class="tags-form"></td>
<td><select name='city_id' id="city_id" value=""class="campos-tabla"
style="width: 130px;"></select></td>
</tr>
这是我的尝试a)根据收到的数据选择下拉选项,b)激活onchange事件,以便填充下一个下拉菜单,然后继续我的下一个选择:
_fillFields: function(){
logingygia.fields.firstname.val(logingygia.firstname);
logingygia.fields.lastname.val(logingygia.lastname);
logingygia.fields.email.val(logingygia.email);
if (logingygia.gender == 'm') {
$('#genderM').attr('checked',true);
}
else {
$('#genderF').attr('checked',true);
};
logingygia.fields.birthmonth.val(d2(logingygia.birthmonth));
logingygia.fields.birthday.val(d2(logingygia.birthday));
logingygia.fields.birthyear.val(logingygia.birthyear)
if (logingygia.country == 'United States') {
$('#country_id').val(212);
}
else {
$('#country_id').val(143);
};
if $('#country_id option: selected ').length){
if ($('#country_id option:selected').length)
$('#country_id').val("state_id).change();
}else{
return ("");
};
}
};
if(logingygia.country本身会正确地选择国家。不幸的是,当我将其与“if country_id:option”结合使用时,没有选择国家,状态下拉菜单只显示“Selecciona”但是不填充任何选择......这是有道理的,因为没有选择国家。
我确信代码是一团糟,所以我非常感谢一些更好的思想来帮助我。
答案 0 :(得分:1)
你错过了一个括号,如果,我不确定你是否可以在:。之后有空格。另外,你错过了一个报价。如果两次,你就会一样。
if ($('#country_id option:selected').length){
$('#country_id').val('state_id').change();
}else{
return ("");
};
修复语法并查看是否修复了它。