Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 如何获取add/remove textfields和form JSON中所有textfields的值_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何获取add/remove textfields和form JSON中所有textfields的值

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

我正在使用插件复制添加和删除按钮上的文本字段。现在,在添加和删除字段之后,我想将所有文本字段组成JSON,并在提交时发布

下面是代码-

$(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 + "}";
    });
});