0

从 jquery impromptu demo中,出于我的目的,我在弹出表单中添加了一个下拉列表,但是我在弄清楚如何在模态表单中的下拉列表下填充“选定”值时遇到问题。

看一下我的示例,在结果框中,请注意列表中的名字是“Mr John Doe”,如果您单击“编辑”链接,您会看到下拉列表下方的标题为“太太'。我希望实现在“标题”下拉列表中填充正确的值,在这种情况下,它应该说“先生”。

代码:

function editUser(id){
    var user = $('#userid'+id)
    var fname = user.find('.fname').text();
    var lname = user.find('.lname').text();
    var title = user.find('.title').val();

    var txt = 'What would you like to change this to?'+
    '<div class="field"><label for="editfname">First Name</label><input type="text" id="editfname" name="editfname" value="'+ fname +'" /></div>'+
    '<div class="field"><label for="editlname">Last Name</label><input type="text" id="editlname" name="editlname" value="'+ lname +'" /></div>'+
    '<div class="field"><label for="edittitle">Title</label><select id="edittitle" name="edittitle" value="'+ title +'" /><option value="mrs" >Mrs</option><option value="mr" >Mr</option><option value="dr" >Dr.</option></select></div>';

...
}

HTML 代码:

<div id="userid1" class="user">
    <span class="controls">
         <a href="javascript:;" title="Edit User" class="edituser" onclick="editUser(1);">Edit</a>
    </span>
    <span class="fname">John</span>
    <span class="lname">Doe</span>
    <span class="title">Mr</span>
</div>

希望我解释得很好,并感谢任何指示。谢谢。

4

1 回答 1

0

像这样将加载的选项添加到 $.prompt:

loaded: function() { $("#edittitle").val(title); },

还可以使用以下内容:

var title = user.find('.title').text();

而不是您目前拥有的:

var title = user.find('.title').val();

最后确保您与您的命名一致。对于您的选项值,请确保使用与所选文本相同的值。不要混用你的箱子!例如,您希望以下内容作为您的选项:

<option value="Mrs">Mrs</option><option value="Mr">Mr</option><option value="Dr">Dr</option>

进行这些更改,一切都应该有效!

于 2011-09-08T05:57:57.060 回答