Javascript 如何获取add/remove textfields和form JSON中所有textfields的值
我正在使用插件复制添加和删除按钮上的文本字段。现在,在添加和删除字段之后,我想将所有文本字段组成JSON,并在提交时发布 下面是代码-Javascript 如何获取add/remove textfields和form JSON中所有textfields的值,javascript,jquery,json,Javascript,Jquery,Json,我正在使用插件复制添加和删除按钮上的文本字段。现在,在添加和删除字段之后,我想将所有文本字段组成JSON,并在提交时发布 下面是代码- $(function () { var scntDiv = $('#p_scents'); var i = $('#p_scents p').size() + 1; $('#addScnt').live('click', function () { $('<p><label for="p_s
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function () {
$('<p><label for="p_scnts"><input type="text" id="p_scnt_' + i + '" size="20" name="p_scnt_' + i + '" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function () {
if (i > 2) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
$(函数(){
var scntDiv=$('p#u scents');
变量i=$('#p#p').size()+1;
$('#addScnt').live('click',function(){
$('p>')。附录(scntDiv);
i++;
返回false;
});
$('#remScnt').live('click',函数(){
如果(i>2){
$(this.parents('p').remove();
我--;
}
返回false;
});
});
可以参考。
我想获取所有文本字段的值并形成JSON。迭代输入字段,获取它们的值,并将它们推送到
JSON。stringify
以创建所需的JSON
function serializeAndPost() {
var values = [];
$( '#p_scents input[id^=p_scnt_]' ).each( function ( index, element ) {
values.push( element.value );
} );
var json = JSON.stringify( { "welcomesList": values } );
// Do your POSTing here
}
更新小提琴:
我不知道这是否是最好的解决方案,因为我正在构建字符串而不是JSON对象,但以下是我的解决方案: HTML
JS:
$(函数(){
var scntDiv=$('p#u scents');
变量i=$('#p#p').size()+1;
$('#addScnt').live('click',function(){
$('p>')。附录(scntDiv);
i++;
返回false;
});
$('#remScnt').live('click',函数(){
如果(i>2){
$(this.parents('p').remove();
我--;
}
返回false;
});
$('#btnsupmit')。单击(函数(e){
e、 预防默认值();
var-str=[];
$。每个($('input[type=text]')、函数(i,val){
var el=$(本);
str.push(“''+el.attr(“id”)+”:“'+el.val()+”);
});
var json_string=“{”+str+“}”;
});
});
首先更新到jQuery的当前版本,然后在上使用而不是live
。这不会解决您的问题,但使用已有五年历史的jQuery版本肯定也不会有任何帮助。@adeneo您的意思是它无助于创建JSON?您希望JSON的结构如何?你想要输入名称作为键吗?@PatrickQ我可以给你一个例子{“welcomesList”:[“谢谢你打电话”,“请提供列表”]}
你所做的是正确的,但是我得到了一个不同的JSOn,而不是我上面为PAtrickQI发布的JSOn可以给你一个例子{“welcomesList”:[“谢谢打电话”,“请提供列表”]}
那么,您基本上希望数组只填充输入字段中的值?这就是你要找的吗?如果你在答案中至少放上相关的JS,那就太好了,以防万一(天禁止)JSFIDLE发生了什么事情。@Wedvich你所做的是为了整个表单。如果我必须只对输入字段执行此操作(比如p_scents)。我该怎么做。
<input type="button" id="btnSubmit" value="Submit"></input>
$(function () {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;
$('#addScnt').live('click', function () {
$('<p><label for="p_scnts"><input type="text" id="p_scnt_' + i + '" size="20" name="p_scnt_' + i + '" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$('#remScnt').live('click', function () {
if (i > 2) {
$(this).parents('p').remove();
i--;
}
return false;
});
$('#btnSubmit').click(function(e) {
e.preventDefault();
var str = [];
$.each($('input[type=text]'), function(i, val) {
var el = $(this);
str.push('"' + el.attr("id") + '":"' + el.val() +'"');
});
var json_string = "{" + str + "}";
});
});