jQuery-尝试附加每个要选择的新选项
jQuery - Trying to append each new option to select
我试图将每个新的<option>
附加到select
字段,但在第一次提交后,我似乎得到了倍数。
感谢您的帮助。
<input id="name" placeholder="name">
<input id="phone" placeholder="phone">
<button id="submit">Submit</button>
以及
$("button").on("click", function(){
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
var len = users.length;
for (var i = 0; i < len; i++) {
$("<option value=" + users[i].phone+ ">" + users[i].name + "</option>").appendTo(select);
}
});
这是一把小提琴:http://jsfiddle.net/Buttery/5dQhj/3/
当前输出
Terry
Gus
Gus
Foo
Foo
Foo
当您单击按钮时,您将新添加的数据附加到原始数据源,然后在原始数据源上循环并重新添加每个数据源,创建重复数据,请尝试以下操作:
$("button").on("click", function(){
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
$("<option value=" + userData.phone + ">" + userData.name + "</option>").appendTo(select);
});
删除for循环:
$("button").on("click", function(){
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
$("<option value=" + userData.phone+ ">" + userData.name + "</option>").appendTo(select);
});
http://jsfiddle.net/9u7LS/
将全局变量移动到函数中
$ ("button").on("click", function(){
var users = [];
var userData = {};
var select = $("#users");
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
var len = users.length;
for (var i = 0; i < len; i++) {
$("<option value=" + users[i].phone + ">" + users[i].name + "</option>").appendTo(select);
}
});
试试这个:Fiddle Demo
正如您使用循环一次又一次地添加现有值一样,请避免使用循环。
var users = [];
var userData = {};
var select = $("#users");
$("button").on("click", function(){
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
$("<option value=" + users[0].phone+ ">" + users[0].name +
"</option>").appendTo(select);
});
var users = [];
var userData = {};
var select = $("#users");
$("button").on("click", function(){
userData.name = $("#name").val();
userData.phone = $("#phone").val();
users.push(userData);
select.append($("option>/option>").attr("value",userData.phone).text(userData.name));
});
相关文章:
- 如何通过Primefaces3.5使用JSF2.0验证并在成功的情况下打开一个新的选项卡
- 打开一个新的选项卡/窗口并向其写入内容
- 使用 POST 打开新的选项卡或窗口 [PHP]
- 提交表单后,打开一个新的选项卡
- 使用javascript打开一个新的选项卡,但使用javascript保留在当前选项卡上
- 如何通过单击Highchart图中的列/栏打开新窗口/选项卡
- JavaScript在新的选项卡中打开,而不是在Chrome浏览器中打开窗口
- Javascript表单提交打开新窗口选项卡,然后重定向父页面
- 在 CSS 中使用新的选项和样式
- 来自 HREF 的新窗口/选项卡
- 将表单提交到新窗口/选项卡
- 如何在新窗口/选项卡中打开文本和 xml 文件
- 检测链接是在新窗口/选项卡还是当前窗口中打开
- 新窗口/选项卡中的JavaScript确认对话框
- Angular:打开新的选项卡,不使用弹出窗口阻止程序
- 为什么打开的窗口有时打开一个新的选项卡,有时弹出
- 如何打开新窗口/选项卡,但专注于打开窗口
- 在磁盘上的新浏览器选项卡中使用javascript以编程方式打开html文件
- 如何通过javaScript获取新打开选项卡的URL
- 打开一个新的选项卡,并使用javascript用父页面的innerHTML填充页面