按钮从外部表单添加选定=“选定”
Button to add selected="selected" from outside form
我正在使用laravel,并试图集成一些我不太擅长的jquery。
我有一个基于数据库值的多选框,其中包含可能很多选项。
<div class="toolselect">
<select multiple>
<option value="1">Tool 1</option>
<option value="2">Tool 2</option>
<option value="3">Tool 3</option>
</select>
</div>
用户可以直接从选择框中选择工具,但这可能是一个巨大的列表,因此我还在选择框下方显示一个搜索字段搜索工具数据库,以便用户可以查看有关该工具的详细信息,然后决定是否要包含该工具。
目前,用户必须首先搜索,然后在选择框中找到该条目并选择它。
我想要一个更快的解决方案,在有关该工具的信息旁边有一个按钮,它会自动将 selected="selected" 添加到上面选择框中的正确选项中。
我试过了
<input type="button" value="Mer" onclick="addselect('{{$tool->id}}')"/>
<script type="text/javascript">
addselect = function (id){
$("div.toolselect select").val(id);
}
但这删除了所有其他选定的字段。
任何想法将不胜感激。
尝试使用 jQuery 的 prop
函数:
<input type="button" value="Mer" onclick="addselect('{{$tool->id}}')"/>
<script type="text/javascript">
addselect = function (id){
$('.toolselect select option[value="'+ id +'"]').prop('selected');
}
</script>
对于多选,该值是所有选定项的数组。您只需将值设置为单个项目,该项被视为一个元素的数组,因此所有其他选择都将被丢弃。
因此,您应该获取旧值,向其添加新 ID,然后将其设置为新值。
function addselect(id) {
$('.toolselect select').val(function(i, oldval) {
oldval = oldval || []; // oldval = null when nothing is selected
oldval.push(id);
return oldval;
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="toolselect">
<select multiple>
<option value="1">Tool 1</option>
<option value="2">Tool 2</option>
<option value="3">Tool 3</option>
</select>
</div>
<input type="button" value="Select 1" onclick="addselect('1')"/>
<input type="button" value="Select 2" onclick="addselect('2')"/>
<input type="button" value="Select 3" onclick="addselect('3')"/>
而不是使用这个:
addselect = function (id){
$("div.toolselect select").val(id);
}
试试这个:
addselect = function(id) {
var temp = [];
var arr = $('select').val();
for(i=0;i<arr.length;i++){
temp.push(arr[i]);
}
temp.push(id);
$("div.toolselect select").val(temp);
}
这样,将保留您以前的选择,并将新选择追加到以前的选择中。
希望这有帮助。
相关文章:
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 如何从外部页面激活非默认引导选项卡
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何从外部url寻址数据
- 从外部函数渲染后更改ReactJS类的状态
- 使用ajax长轮询从外部API更新页面上的响应
- 在选择更改时更改从外部javascript生成的flash播放器
- 从外部js文件编辑现有的谷歌地图
- CkEditor复制/粘贴实现-从编辑器复制和从外部编辑器复制
- Javascript从外部站点获取html
- 如何在从外部连接时将外部文件包含到node-js项目中
- GWT:可以从外部JavaScript而不是JSNI调用Java方法吗
- 访问模块.从外部文件导出
- 从外部 txt 加载阵列
- 无法让 javascript 从外部文件工作
- 如何检查该函数是否从外部js文件调用
- 从外部 js 脚本创建元素并插入到 html 中
- 从外部函数(数组)了解返回函数(x)
- 主干从外部json填充集合
- 按钮从外部表单添加选定=“选定”