【发布时间】:2013-08-09 08:22:35
【问题描述】:
我想更改下拉字段。使用普通的很容易,但 Foundation 用自定义下拉字段替换它。
这里是 HTML 代码:
<div class="row">
<div class="small-centered columns">
<select name="language" id='customDropdown' class='large languageDropdown'>
<option value="de">German</option>
<option value="en">English</option>
<option value="ca">Castelliano</option>
<option value="es">Spanisch</option>
<option value="fr">Französisch</option>
<option value="pt">Portugisisch</option>
</select>
</div>
</div>
这就是基金会的作用:
<div class="row">
<div class="small-centered columns">
<select name="language" id="customDropdown" class="large languageDropdown hidden-field" data-id="1375994037026-oNYTe">
<option value="de">German</option>
<option value="en">English</option>
<option value="ca">Castelliano</option>
<option value="es">Spanisch</option>
<option value="fr">Französisch</option>
<option value="pt">Portugisisch</option>
</select>
<div class="custom dropdown large languageDropdown" data-id="1375994037026-oNYTe">
<a href="#" class="current">German</a>
<a href="#" class="selector"></a>
<ul>
<li class="selected">German</li>
<li class="">English</li>
<li class="">Castelliano</li>
<li class="">Spanisch</li>
<li class="">Französisch</li>
<li class="">Portugisisch</li>
</ul>
</div>
</div>
</div>
我的 Javascript 尝试:
1。 $('#customDropdown').val(jd.language);
工作正常 - 但仅限于隐藏字段 - 如果我发送表单,正确的语言将发送到服务器。但可见的 DropDown 字段仍显示旧值。
2。 $('#customDropdown').val(jd.language).trigger('change');
不幸的是,这不起作用 - 即使它像 here 的魅力一样 - 无法找出为什么它不适用于我的代码。
3。 $('#customDropdown').val(jd.language).change(); Foundation.libs.forms.refresh_custom_select('.languageDropdown', true);
这会引发 Javascript 错误:
Uncaught TypeError: Object .languageDropdown has no method 'next'
4。 $('#customDropdown').val(jd.language); $(文档).foundation();
以为它会刷新基础 javascript,但事实并非如此。 ...
没有想法了(也许我监督某事? - 这就是我希望你们能帮我找到的) 不过,一件有趣的事情是:如果我提交表单,我会被重定向到提交页面。如果我使用浏览器按钮返回:....瞧! - 显示正确的下拉字段。但这不是我想要的:P
【问题讨论】: