选择值让我感到困惑。当用户在我的应用程序中编辑一行时,我使用 jquery 克隆一个标签(称为 empty-X)并将其放在模式窗口上,以便用户可以编辑这些值。同时,我从服务器获取了一个 json 对象(数据),并在模式窗口中填写了数据库中的当前字段:
empty_X.find('#id_deals-1-currency').val(data[0].fields['currency']);
现在,当模式显示时,用户可以看到如何在下拉列表中选择正确的货币。
然而,当我用 Firebug 检查这个元素的 HTML 时,我得到了一张不同的图片,似乎没有被选中。
<select id="id_deals-1-currency" name="deals-1-currency">
<option selected="selected" value="">---------</option>
<option value="1">USD - $</option>
<option value="2">EUR - €</option>
<option value="3">GBP - £</option>
</select>
然而,当我将表单发送到服务器时,没有验证错误,并且货币与之前通过 val() 设置的值相同。生活很好。
虽然这本身有效,但存在一个问题。如果用户想回到编辑模式并在保存之前再次验证货币怎么办?
在这种情况下,我不能再从数据库中加载值了。他以前的局部变化现在很重要。我必须在模式窗口中克隆当前带有货币的记录,以便用户可以看到他之前更改的内容并进行验证。现在的问题是用户看不到他在上一步中更改的货币。事实上,他会看到一个空的下拉菜单。
我在这里有什么选择?有没有办法将selected
标志设置为实际选择而不是使用val()
?