Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 纽约的情景。这很奇怪@ChavaG。你的解决方案看起来应该是可移植的。现在我知道为什么你的答案对我不起作用了。你看,我必须让语言值只运行一次,而不是两次。问题是,我只在问题中发布了选择选项菜单的一小部分。整个菜单有40多种语言,它们分为大多数“通用语言”和_Javascript_Jquery_Html_Select_Option - Fatal编程技术网

Javascript 纽约的情景。这很奇怪@ChavaG。你的解决方案看起来应该是可移植的。现在我知道为什么你的答案对我不起作用了。你看,我必须让语言值只运行一次,而不是两次。问题是,我只在问题中发布了选择选项菜单的一小部分。整个菜单有40多种语言,它们分为大多数“通用语言”和

Javascript 纽约的情景。这很奇怪@ChavaG。你的解决方案看起来应该是可移植的。现在我知道为什么你的答案对我不起作用了。你看,我必须让语言值只运行一次,而不是两次。问题是,我只在问题中发布了选择选项菜单的一小部分。整个菜单有40多种语言,它们分为大多数“通用语言”和,javascript,jquery,html,select,option,Javascript,Jquery,Html,Select,Option,纽约的情景。这很奇怪@ChavaG。你的解决方案看起来应该是可移植的。现在我知道为什么你的答案对我不起作用了。你看,我必须让语言值只运行一次,而不是两次。问题是,我只在问题中发布了选择选项菜单的一小部分。整个菜单有40多种语言,它们分为大多数“通用语言”和“所有语言”,在选项列表的“所有语言”区域中,“通用语言”作为值重复出现。我解决了无法工作的问题,因为它是相同值的两倍。但现在这是第二个问题,当使用更新的代码切换语言时会出错。你这里所说的“切换”是什么意思?@SeekLoad,我认为这是另一个


纽约的情景。这很奇怪@ChavaG。你的解决方案看起来应该是可移植的。现在我知道为什么你的答案对我不起作用了。你看,我必须让语言值只运行一次,而不是两次。问题是,我只在问题中发布了选择选项菜单的一小部分。整个菜单有40多种语言,它们分为大多数“通用语言”和“所有语言”,在选项列表的“所有语言”区域中,“通用语言”作为值重复出现。我解决了无法工作的问题,因为它是相同值的两倍。但现在这是第二个问题,当使用更新的代码切换语言时会出错。你这里所说的“切换”是什么意思?@SeekLoad,我认为这是另一个问题。此javascript/jQuery中的任何内容都不会导致该消息出现。没问题,我解决了它。这是一些错误代码的地方,但一旦我使用备份,并重新复制和修复所有的代码,以有新的代码在页面上,所有工作与您的代码良好。我想我没有看到某个地方的打字错误。谢谢你,现在很好用。
<script src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
<script type='text/javascript'>
$(window).load(function(){
$(function () {
  'use strict';
  $('.OBSMatch').on('change', function (event) {
    var selectedValue = $(event.currentTarget).val();
    var matchedDropdowns = $('.OBSMatch').filter(function (index) {
      return $(this).val() === selectedValue;
    });
    if (matchedDropdowns.length > 1) {
      alert("OBS! You cannot use it, because it matches each other!")
    }
  })
})
});
</script>
<select name="LangF1" class="OBSMatch">
<option value="zh-CN">Chinese (Simplified)</option>
<option selected value="en">English</option>
<option value="fr">French</option>
<option value="de">German</option>
<option value="ru">Russian</option>
<option value="es">Spanish</option>
<option value="" disabled>&#8212;</option>
<option value="auto">Auto Detect</option>
</select>

<select name="LangF2" class="OBSMatch">
<option value="zh-CN">Chinese (Simplified)</option>
<option value="en">English</option>
<option selected value="fr">French</option>
<option value="de">German</option>
<option value="ru">Russian</option>
<option value="es">Spanish</option>
<option value="" disabled>&#8212;</option>
<option value="auto">Auto Detect</option>
</select>
<script language="JavaScript">
function getSelectedOption( elem ) {
  return elem.options[elem.selectedIndex].value;
}

function setSelectedOption( elem, value ) {
  for (let i = 0; i < elem.options.length; i++) {
    elem.options[i].selected = value === elem.options[i].value;
  }
}

function swapByOptionValue( selector1, selector2 ) {
  var elem1 = document.querySelector(selector1),
      elem2 = document.querySelector(selector2),
      selectedOption1 = getSelectedOption( elem1 ),
      selectedOption2 = getSelectedOption( elem2 );
  setSelectedOption( elem1, selectedOption2 );
  setSelectedOption( elem2, selectedOption1 );
}

function swapBySelectedIndex( selector1, selector2 ) {
  var elem1 = document.querySelector(selector1),
      elem2 = document.querySelector(selector2),
      selectedOption1 = elem1.selectedIndex;

  elem1.selectedIndex = elem2.selectedIndex;
  elem2.selectedIndex = selectedOption1;
}
</script>
<input type="button" id="SwitchLang" onClick="swapByOptionValue('select[name=\'LangF1\']', 'select[name=\'LangF2\']');" value=" Swap &#9650;&#9660; Language ">
var $menus = $('.OBSMatch').on('change', function(event) {
    $menus.not(this).find('option').filter(function(index, opt) {
        return opt.value === event.target.value;
    }).prop('disabled', true) // disable the other menu's option corresponding to this menu's selection
    .siblings().not('._protected').prop('disabled', false); // enable the other menu's options except any that are protected.
});

$menus.find('option').filter(function(index, opt) {
    return opt.disabled;
}).addClass('_protected'); // protect any initially disabled options from being enabled

$menus.trigger('change'); // initialize everything
function switch_(selector) {
    var $menus = $(selector);
    var values = $menus.map(function() {
        return this.value;
    }).get().reverse(); // reverse() swaps the two values
    $menus.each(function(i, menu) {
        $(this).val(values[i]); // implement the switch
    }).trigger('change'); // re-initialize everything
}

// call
switch_('.OBSMatch');

// so, assuming you have a #switch element :
$('#switch').on('click', function() {
    switch_('.OBSMatch');
});