如何从下拉列表中选择选项并执行onchange Jquery

时间:2011-04-29 18:42:19

标签: javascript json jquery

我可能以最糟糕的方式做到这一点,但我正在尝试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”但是不填充任何选择......这是有道理的,因为没有选择国家。

我确信代码是一团糟,所以我非常感谢一些更好的思想来帮助我。

1 个答案:

答案 0 :(得分:1)

你错过了一个括号,如果,我不确定你是否可以在:。之后有空格。另外,你错过了一个报价。如果两次,你就会一样。

if ($('#country_id option:selected').length){
   $('#country_id').val('state_id').change();
}else{
   return ("");
};

修复语法并查看是否修复了它。