Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何重新选择列表框中的项目?_Javascript_Jquery_Html_Asp.net Mvc 4 - Fatal编程技术网

Javascript 如何重新选择列表框中的项目?

Javascript 如何重新选择列表框中的项目?,javascript,jquery,html,asp.net-mvc-4,Javascript,Jquery,Html,Asp.net Mvc 4,我有一个网页,有两个列表框。我的jQuery/JavaScript有问题。当用户在左侧列表框中选择一个项目时,它应该在右侧列表框中选择三个项目。除非我刷新页面,否则它只能在第一次使用。我知道代码正在执行,因为我可以单步执行。这似乎是一个简单的任务,所以我一定错过了什么。我创建了一个问题的在线示例,上面显示了问题。-按预览按钮。谢谢你的帮助 <!DOCTYPE html> <html> <head> <title>Re-select Items in

我有一个网页,有两个列表框。我的jQuery/JavaScript有问题。当用户在左侧列表框中选择一个项目时,它应该在右侧列表框中选择三个项目。除非我刷新页面,否则它只能在第一次使用。我知道代码正在执行,因为我可以单步执行。这似乎是一个简单的任务,所以我一定错过了什么。我创建了一个问题的在线示例,上面显示了问题。-按预览按钮。谢谢你的帮助

<!DOCTYPE html>
<html>
<head>
<title>Re-select Items in Listbox</title>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).ready(function() {

   $('#meters').change(function () {
    $('#baselines option').prop('selected', false); // Clear selected baselines

    var data = [2, 3, 4];

    var len = $('#baselines option').length;

    for (var i = 1; i <= len; i++) {
        $("#baselines option[value=" + i + "]").attr("selected", (data.indexOf(i) !== -1) ? true : false);
    }
});
});
</script>

</head>

<body>
<p id="myid">Is is a test of selecting items in listbox</p>

<div>
  <select class="form-control" id="meters" name="SelectedMeters" style="width: 200px;">
    <option value="1">12345678</option>
    <option value="2">1234567890</option>
  </select>

  <select class="form-control" id="baselines" multiple="True" name="SelectedBaselines" size="10" style="width: 200px;">
    <option value="1">MeterBaseline1</option>
    <option value="2">MeterBaseline2</option>
    <option value="3">MeterBaseline3</option>
    <option value="4">MeterBaseline4</option>
    <option value="5">MeterBaseline5</option>
    <option value="6">MeterBaseline6</option>
    <option value="7">PJM_MovingAvg</option>
  </select>
</div>
</body>
</html>

您要更改以下行:

$baselines选项[value=+i+].attrselected,data.indexOfi!==-1.真:假

使用而不是使用:


$baselines选项[value=+i+].propselected,data.indexOfi!==-1.真:假

使用removeAttr取消选择选项,并使用道具选择选项

请在线尝试jQuery 函数getRndIntegermin,max{ 返回Math.floorMath.random*max-min+1+min; } $document.readyfunction{ $em.addClassselected; $myid.addClasshighlight; $'meters'.change函数{ $'baselines option'.removeAttr'selected'; var数据=[getRndInteger1,2,getRndInteger3,4,getRndInteger5,7]; console.debugdata; var len=$“基线选项”。长度;
对于var i=1;我成功了!非常感谢。一个愚蠢的问题,为什么我的方法不成功?很高兴帮助您,所发生的事情是,它们是从成功的属性中选择的!谢谢。您指向prop和attr的链接也很有帮助。