如何在表单中发布多个选择的值?当我点击提交时,没有发布任何选定的值.
<form id="form" action="" method="post">
<div>
<select id="inscompSelected" multiple="multiple" class="lstSelected">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="submit" value="submit">
</div>
</form>
Run Code Online (Sandbox Code Playgroud) 我有一组选择,都有相同的选项.然后我通过过滤器运行这些选项,以便在选择中不显示在不同选择中选择的任何选项.看到这个jsFiddle(在非IE浏览器中)看看我的意思.基本上我阻止在选择中多次选择相同的选项
现在,我所做的事情在IE中存在问题.在IE中打开那个小提琴(我只在IE9中试过它,但我猜测以前的版本有同样的问题).将最后一个选择更改为AAA.注意3个其他选择如何改变他们显示的内容.他们的模型并没有改变,但是当选项改变时,IE会以某种方式窒息.
我的问题是第一,我是否在使用此功能时出错?这个代码完全符合我想要的Chrome和FF,但我做的是我不应该做的事情吗?其次,我怎样才能在IE中解决这个问题?我尝试了一些可以清除和重新设置模型的超时,但事情明显地跳了起来.我想知道是否有一个良好,干净,低影响的解决方法.
任何帮助将非常感激.谢谢.
--UPDATE--
这已经在Angular本身使用版本1.3.3 修复,使用下面的AS Ranjan解决方案.看看1.3.3的新小提琴:http://jsfiddle.net/m2ytyapv/
//dummy code so I can post the edit
Run Code Online (Sandbox Code Playgroud) 我的选择列表被调用dropListBuilding.以下代码似乎不起作用:
for (var i = 0; i < buildings.length; i++) {
var val = buildings[i];
var text = buildings[i];
alert("value of builing at: " + i.toString() + " is: " + val);
$("#dropListBuilding").addOption(val, text, false);
}
Run Code Online (Sandbox Code Playgroud)
这条线死了:
$("#dropListBuilding").addOption(val, text, false);
Run Code Online (Sandbox Code Playgroud)
在jQuery中向下拉列表中添加项目的权利是什么?我已经测试过没有那条线,而建筑变量确实有我的数据元素.
有没有办法让选项组可选?
<select>
<optgroup value="0" label="Parent Tag">
<option value="1">Child Tag</option>
<option value="2">Child Tag</option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud) 我试过了:include_blank => true,但没办法.
<select>
<%= options_for_select Model.all.collect{|mt| [mt.name, mt.id]} %>
</select>
Run Code Online (Sandbox Code Playgroud)
如果我需要将它添加到集合中,你会怎么做?
假设我select使用以下内容将数组绑定到标记:
<select ng-model="selData" ng-options="$index as d.name for d in data">
Run Code Online (Sandbox Code Playgroud)
在这种情况下,为关联的option标签分配一系列索引值:(0,1,2,...).但是,当我从下拉列表中选择某些内容时,其值将selData被绑定undefined.绑定实际上是否有效?
另一方面,说我改为做以下事情:
<select ng-model="selData" ng-options="d as d.name for d in data">
Run Code Online (Sandbox Code Playgroud)
这里,option标签获得相同的索引,但整个对象在更改时绑定.它是通过设计这种方式工作,还是这种行为只是一个很好的bug或AngularJS的副作用?
需要使用jQuery在选择框中禁用已选择的选项.我希望它像asmselect一样变灰.
在这里测试我的例子.
//JS
$("#theSelect").change(function(){
var value = $("#theSelect option:selected").val();
var theDiv = $(".is" + value);
theDiv.slideDown().removeClass("hidden");
});
$("div a.remove").click(function () {
$(this).parent().slideUp(function() { $(this).addClass("hidden"); });
});
//HTML
<body>
<div class="selectContainer">
<select id="theSelect">
<option value="">- Select -</option>
<option value="Patient">Patient</option>
<option value="Physician">Physician</option>
<option value="Nurse">Nurse</option>
</select>
</div>
<div class="hidden isPatient">Patient <a href="#" class="remove" rel="Patient">remove</a></div>
<div class="hidden isPhysician">Physician <a href="#" class="remove" rel="Patient">remove</a></div>
<div class="hidden isNurse">Nurse <a href="#" class="remove" rel="Patient">remove</a></div>
</body>?
Run Code Online (Sandbox Code Playgroud)
更新:这是完成的解决方案.感谢Patrick和Simen.
我有以下标记:
<select onchange="jsFunction()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
当用户下拉组合框并选择之前选择的相同选项(或根本不更改选择)时,JavaScript不会将其视为onchange事件.所以,jsFunction()没有被召唤.但jsFunction()即使在这种情况下我也想要被叫.我怎样才能做到这一点?
问题:
select中的某些项目需要超过145px的指定宽度才能完全显示.
Firefox行为:单击选择会显示调整为最长元素宽度的下拉元素列表.
IE6和IE7行为:单击选择会显示下拉元素列表限制为145px宽度,因此无法读取更长的元素.
当前的UI要求我们在145px中放入此下拉列表,并让它包含更长描述的项目.
有关解决IE问题的任何建议吗?
即使扩展列表,顶部元素仍应保持145px宽.
谢谢!
css:
select.center_pull {
background:#eeeeee none repeat scroll 0 0;
border:1px solid #7E7E7E;
color:#333333;
font-size:12px;
margin-bottom:4px;
margin-right:4px;
margin-top:4px;
width:145px;
}
Run Code Online (Sandbox Code Playgroud)
这是选择输入代码(此时没有backend_dropbox样式的定义)
<select id="select_1" class="center_pull backend_dropbox" name="select_1">
<option value="-1" selected="selected">Browse options</option>
<option value="-1">------------------------------------</option>
<option value="224">Option 1</option>
<option value="234">Longer title for option 2</option>
<option value="242">Very long and extensively descriptive title for option 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
完整的html页面,以防您想在浏览器中快速测试:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dropdown test</title> …Run Code Online (Sandbox Code Playgroud) 我正在建立新网站,我需要一个下拉菜单来选择我网站中的内容.但与此同时,我需要这个下拉列表来接受文本.因此,如果客户想要从下拉列表中选择,那么他也可以,如果客户想要通过文本输入金额,那么他也可以.正如你所看到的,我想让它成为双重的.
例如:假设有一个amount下拉菜单,其元素为(1,2,3);
现在假设客户端需要的金额为5 - 这是他的权利 - 它在下拉列表中不存在,因此客户现在必须以文本方式输入金额.因此,对于任何条目,客户必须从下拉列表中选择或以文本方式输入金额.
我的问题的描述,我向大家介绍过的简单例子后,这里是我的问题:
是否有HTML代码可以将下拉菜单和文本字段合二为一,而不是分开?
html-select ×10
html ×4
angularjs ×2
jquery ×2
css ×1
erb ×1
html-input ×1
javascript ×1
optgroup ×1