【问题标题】:jquery: switch chosen selectbox selected value on clickjquery:单击时切换选择的选择框选定值
【发布时间】:2014-06-19 19:44:51
【问题描述】:

我想使用 jquery 将值从一个选择框交换到另一个,

我的选择框是http://harvesthq.github.io/chosen/的形式

例子:

说我有 2 个下拉选择框,首先我选择了美元,然后我选择了欧元,点击切换按钮后,选择框选择的值和级别应该互换

http://jsfiddle.net/34kcb/(没有选择效果,效果很好)

我尝试了下面的代码,但它现在给了我我正在寻找的东西,所以也许你可以帮助我

$("body").on("click", "#switchid", function(){ 
               var frm='';var to='';
               frm=$("#from_currency option:selected").val(); 
               to=$("#to_currency option:selected").val(); 
               $("#to_currency").val(frm);
              $("#from_currency").val(to);
              //currencyConverter();
  });

HTML 代码

 <select name="from_currency" id="from_currency">
                  <option value="USD">USD : United States Dollar</option> 
                  <option value="EUR">EUR : Euro</option> 
                  <option value="JPY">JPY : Japanese Yen</option>
                  <option value="INR">INR : Indian Rupee</option>
     </select>
<br/>

    <select name="to_currency" id="to_currency"> 
                  <option value="EUR">EUR : Euro</option>  
                  <option value="USD">USD : United States Dollar</option> 
                  <option value="JPY">JPY : Japanese Yen</option>
                  <option value="INR">INR : Indian Rupee</option>
     </select>

<br/>

<input type="button" id="switchid" value="Switch"/>

更新:

在简单的选择框中它可以工作,但在与 Choosen selectbox 集成后,同样的事情是 不工作。有什么想法吗?

【问题讨论】:

标签: jquery


【解决方案1】:

试试这个

$("#switchid").on("click", function(){ 
          var frm = '';
          var to ='';
          frm = $("#from_currency").val(); 
          to = $("#to_currency option:selected").val(); 
          $("#to_currency").val(frm);
          $("#from_currency").val(to);
          $("#from_currency, #to_currency").trigger("chosen:updated");
        });

最后一行" $("#from_currency, #to_currency").trigger("chosen:updated");" 应该触发选择更新。不过,我还没有测试过,因为我没有选择(或目前的时间)! :)

【讨论】:

  • 请再次检查我的问题,我有不同类型的选择框
  • 触发本函数结束上述函数$("#from_currency, #to_currency").trigger("chosen:updated");
  • 我尝试了你提供的东西,但仍然没有任何反应
【解决方案2】:

试试这个:

$("body").on("click", "#switchid", function(){ 
  var frm = '';
  var to ='';
  frm = $("#from_currency").val(); 
  to = $("#to_currency").val(); 
  $("#to_currency").val(frm);
  $("#from_currency").val(to);
  $("#from_currency, #to_currency").trigger("chosen:updated");
});

在这里工作:http://jsfiddle.net/H5x5u/

您不需要选择选项:已选择,.val() jQuery 会为您完成。

【讨论】:

  • 问题是当您使用选择框时下拉菜单被隐藏。您需要添加 $("#to_currency, #from_currency").trigger("chosen:updated");就在行尾之前。我已经更新了我的答案,它应该工作:)
【解决方案3】:
$("body").on("click", "#switchid", function(){ 
 var firstDropDownValue = $("#from_currency option:selected").attr('selected','selected').val();  
 var secondDropDownValue = $("#to_currency option:selected").attr('selected','selected').val();
var afterSwitchFirstValue = $("#from_currency").val(secondDropDownValue);        
var afterSwitchSecondValue = $("#to_currency").val(firstDropDownValue);
  });

请检查http://jsfiddle.net/34kcb/2/ 中的答案,并且该值在选择框中交换,它可以根据需要工作..

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多