为bootstrap模式编写回调函数

时间:2014-07-23 00:00:59

标签: javascript jquery twitter-bootstrap callback html-select

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

我问过这个问题并在这里得到了一个关于displaying two values from the same html select list for a JavaScript confirmation popup的好答案。但是,我现在需要用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>

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

$( "#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() + '?');

上面的代码行总是返回第二语言值 $('#id_language_code选项:选中')。text()(标记为selected =“selected”)为英文(US)在引导模式上,即使用户选择了保加利亚语 - Български

我已阅读并认为这将需要JavaScript回调函数,因为引导模式是异步的,而JavaScript confirm()不是异步的。

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

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

1 个答案:

答案 0 :(得分:7)

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

  1. show - 调用show instance方法时会立即触发此事件。
  2. 显示 - 当模式对用户可见时将触发此事件(将等待css转换完成)​​。
  3. 隐藏 - 调用隐藏实例方法后立即触发此事件。
  4. 隐藏 - 当模态完成对用户的隐藏时将触发此事件(将等待css转换完成)​​。
  5. 您可以将上述事件用作

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

    希望这能解决你的问题!

    编辑1:

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

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

    美好的一天