为bootstrap模式编写回调函数

use*_*774 0 javascript jquery html-select callback twitter-bootstrap

我有一个bootstrap模态确认,我想显示当前选中的html选择列表的值以及传入变量的值.

我问了这个问题并在这里得到了一个很好的答案,关于在同一个html选择列表中显示两个值,用于JavaScript确认弹出窗口.但是,我现在需要用bootstrap模式替换JavaScript确认.

这是html选择列表:

<select name="language_code" id="id_language_code">
    <option value="ar">Arabic - ???????</option>
    <option value="bg">Bulgarian - ?????????</option>
    <option value="zh-CN">Chinese (Simplified) - ?? (??)?</option>
    <option value="en" selected="selected">English (US)</option>
    <option value="fr-CA">French (Canada) - français (Canada)?</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码在引导模式上显示两个语言值:

$( "#submit_buttonA" ).attr('update-confirm', 'Are you sure you want to change the language of the website from ' + $('#id_language_code option[value=' + '{{ user.get_profile.language_preference }}' +  ']').text() + ' to ' + $('#id_language_code option:selected').text() + '?');
Run Code Online (Sandbox Code Playgroud)

上面的代码行总是在bootstrap模式上返回第二语言值$('#id_language_code选项:selected').text()(标记为selected ="selected")为英语(US),即使用户有选定保加利亚语 - Български.

我已经阅读了这篇文章并认为这需要一个JavaScript回调函数,因为引导模式是异步的,而JavaScript confirm()不是异步的.

它是否正确?我已经尝试编写一个回调函数来返回用户选择的html选择列表的值,但它不起作用.我不确定这是正确的方法还是我的代码技能不够好.

有人可以告诉我如何编写这个回调函数并解释它是如何工作的,因为我真的很困惑如何让它工作?

Nav*_*eer 7

Bootstrap的模态类已经具有以下事件以挂钩到模态功能.

  1. show - 调用show实例方法时立即触发此事件.
  2. 显示 - 当模态对用户可见时将触发此事件(将等待css转换完成)​​.
  3. hide - 调用hide实例方法时立即触发此事件.
  4. hidden - 当模态完成对用户的隐藏时将触发此事件(将等待css转换完成)​​.

您可以将上述事件用作

 $('#myModal').on('shown', function () {
    //your code to display the message
 })
Run Code Online (Sandbox Code Playgroud)

希望这能解决你的问题!!

编辑1:

真正的问题是使用jquery选择器$('#id_language_code option:selected').text(); Use var selectedValue = $('#id_language_code').val():,它将为您提供选择框内当前选定的值.您可以使用它$('#id_language_code option[value=' + selectedValue + ']').text();来获取用户选择的文本.

您无需针对您的问题寻求回拨功能.

美好的一天