Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 Jquery未正确追加值_Javascript_Jquery - Fatal编程技术网

Javascript Jquery未正确追加值

Javascript Jquery未正确追加值,javascript,jquery,Javascript,Jquery,我在页面加载上有一组固定的输入字段。我有显示值的复选框,当有人选中复选框时,值将添加到输入字段。如果所有输入字段都已填充,则会创建一个新字段。我的问题是,复选框值在现有输入字段中正确插入,如果值超过,则会创建新的输入字段,但在创建输入字段时不会立即插入值。只有在下一次单击时,才会在新创建的输入字段中插入值。这是代码 <script> function fillin(entire,name,id,key) { if (entire.checked == true

我在页面加载上有一组固定的输入字段。我有显示值的复选框,当有人选中复选框时,值将添加到输入字段。如果所有输入字段都已填充,则会创建一个新字段。我的问题是,复选框值在现有输入字段中正确插入,如果值超过,则会创建新的输入字段,但在创建输入字段时不会立即插入值。只有在下一次单击时,才会在新创建的输入字段中插入值。这是代码

<script>
    function fillin(entire,name,id,key) {
        if (entire.checked == true) {
            var split_info = new Array();
            split_info = name.split(":"); 
            var div = $("#Inputfields"+id);
            var till = (div.children("input").length)/4;
            var current_count = 0;
            for (var j=0;j<till;j++) {
                if (document.getElementById("insertname_"+j+"_"+id).value == "" && document.getElementById("insertnumber_"+j+"_"+id).value == "") {
                    document.getElementById("insertname_"+j+"_"+id).value = split_info[0];
                    document.getElementById("insertnumber_"+j+"_"+id).value = split_info[1];
                    break;
                } else
                    current_count = current_count+1;
                if (current_count == till) {
                    var x= addnew(id);
                    x =x+1;
                    $("#Inputfields"+id).find("#insertname_"+x+"_"+id).value = split_info[0];
                    alert($("#Inputfields"+id).find("#insertname_"+x+"_"+id).value);
                    document.getElementById("insertname_"+x+"_"+id).text = split_info[0];
                    //alert(document.getElementById("insertname_"+x+"_"+id).value);
                    //document.getElementById("insertnumber_"+x+"_"+id).value = split_info[1];
                }
            }
        } else {
        }
    }
</script>

<script>
function addnew(n) {
    //var id = $(this).attr("id");
    var div = $("#Inputfields"+n);
    var howManyInputs = (div.children("input").length)/4;
    alert(howManyInputs);
    var val = $("div").data("addedCount");

    var a = '<input type="search" id="insertinstitute_'+(howManyInputs)+'_'+n+'" placeholder="Institute" class="span3">';
    var b =  '<input type="search" id="insertname_'+(howManyInputs)+'_'+n+'" placeholder="name" class="span3">';
    var c =  '<input type="search" name="" id="insertnumber_'+(howManyInputs)+'_'+n+'" placeholder="number" class="span3">';
    var d =  '<input type="search" name="" id="insertarea_'+(howManyInputs)+'_'+n+'" placeholder="area" class="span3">';
    var fin = a+b+d+c;
    $(fin).appendTo(div);
    div.data("addedCount", div.data("addedCount") + 1);
    return howManyInputs;
}
</script>

函数填充(完整、名称、id、键){
如果(完整的.checked==true){
var split_info=新数组();
split_info=name.split(“:”);
var div=$(“#输入字段”+id);
var-till=(div.children(“input”).length)/4;
无功电流_计数=0;

对于(var j=0;j而言,问题可能在于:

document.getElementById("insertname_"+x+"_"+id).text
元素中没有
text
属性。元素中有
textContent
(不在IE8-)、
innerText
(在IE中)和
innerHTML
。但是jQuery中有
text
方法。因此,您可以执行以下操作之一:

document.getElementById("insertname_"+x+"_"+id).innerHTML = ...

此外,这些行:

$("#Inputfields"+id).find("#insertname_"+x+"_"+id).value = split_info[0];
alert($("#Inputfields"+id).find("#insertname_"+x+"_"+id).value);

.value
应该替换为
.val()
,因为它们是jQuery对象。

问题可能在这里:

document.getElementById("insertname_"+x+"_"+id).text
元素中没有
text
属性。元素中有
textContent
(不在IE8-)、
innerText
(在IE中)和
innerHTML
。但是jQuery中有
text
方法。因此,您可以执行以下操作之一:

document.getElementById("insertname_"+x+"_"+id).innerHTML = ...

此外,这些行:

$("#Inputfields"+id).find("#insertname_"+x+"_"+id).value = split_info[0];
alert($("#Inputfields"+id).find("#insertname_"+x+"_"+id).value);

.value
应该替换为
.val()
,因为这些都是jQuery对象。

出于很多原因,我已经修改了很多代码。请比较两者

function fillin(entire, name, id, key) {
    if (entire.checked) {
        var split_info = [];
        split_info = name.split(":");
        var div = $("#Inputfields" + id);
        var till = (div.children("input").length) / 4;
        var current_count = 0;
        var j = 0;
        for (j = 0; j < till; j++) {
            var myj = j + "_" + id;
            if ($("#insertname_" + myj).val() === "" && $("#insertnumber_" + myj).val() === "") {
                $("#insertname_" + myj).val(split_info[0]);
                $("#insertnumber_" + myj).val(split_info[1]);
                break;
            } else {
                current_count = current_count + 1;
            }
            if (current_count === till) {
                var x = addnew(id) + 1;
                div.find("#insertname_" + x + "_" + id).val(split_info[0]);
                alert(div.find("#insertname_" + x + "_" + id).val());
                $("#insertname_" + x + "_" + id).val(split_info[0]);
            }
        }
    }
}

function addnew(n) {
    var div = $("#Inputfields" + n);
    var howManyInputs = (div.children("input").length) / 4;
    alert(howManyInputs);
    var myi = (howManyInputs) + '_' + n + '"';
    var val = div.data("addedCount");

    var a = '<input type="search" id="insertinstitute_' + myi + ' placeholder="Institute" class="span3">';
    var b = '<input type="search" id="insertname_' + myi + '  placeholder="name" class="span3">';
    var c = '<input type="search" name="" id="insertnumber_' + myi + ' placeholder="number" class="span3">';
    var d = '<input type="search" name="" id="insertarea_' + myi + '  placeholder="area" class="span3">';
    var fin = a + b + d + c;
    $(fin).appendTo(div);
    div.data("addedCount", val + 1);
    return howManyInputs;
}
函数填充(完整、名称、id、键){
如果(全部选中){
风险值拆分信息=[];
split_info=name.split(“:”);
var div=$(“#输入字段”+id);
var-till=(div.children(“input”).length)/4;
无功电流_计数=0;
var j=0;
对于(j=0;j
出于各种原因,我修改了您的许多代码。请将两者进行比较

function fillin(entire, name, id, key) {
    if (entire.checked) {
        var split_info = [];
        split_info = name.split(":");
        var div = $("#Inputfields" + id);
        var till = (div.children("input").length) / 4;
        var current_count = 0;
        var j = 0;
        for (j = 0; j < till; j++) {
            var myj = j + "_" + id;
            if ($("#insertname_" + myj).val() === "" && $("#insertnumber_" + myj).val() === "") {
                $("#insertname_" + myj).val(split_info[0]);
                $("#insertnumber_" + myj).val(split_info[1]);
                break;
            } else {
                current_count = current_count + 1;
            }
            if (current_count === till) {
                var x = addnew(id) + 1;
                div.find("#insertname_" + x + "_" + id).val(split_info[0]);
                alert(div.find("#insertname_" + x + "_" + id).val());
                $("#insertname_" + x + "_" + id).val(split_info[0]);
            }
        }
    }
}

function addnew(n) {
    var div = $("#Inputfields" + n);
    var howManyInputs = (div.children("input").length) / 4;
    alert(howManyInputs);
    var myi = (howManyInputs) + '_' + n + '"';
    var val = div.data("addedCount");

    var a = '<input type="search" id="insertinstitute_' + myi + ' placeholder="Institute" class="span3">';
    var b = '<input type="search" id="insertname_' + myi + '  placeholder="name" class="span3">';
    var c = '<input type="search" name="" id="insertnumber_' + myi + ' placeholder="number" class="span3">';
    var d = '<input type="search" name="" id="insertarea_' + myi + '  placeholder="area" class="span3">';
    var fin = a + b + d + c;
    $(fin).appendTo(div);
    div.data("addedCount", val + 1);
    return howManyInputs;
}
函数填充(完整、名称、id、键){
如果(全部选中){
风险值拆分信息=[];
split_info=name.split(“:”);
var div=$(“#输入字段”+id);
var-till=(div.children(“input”).length)/4;
无功电流_计数=0;
var j=0;
对于(j=0;j
你也可以链接你的HTML,或者把它们放在JSFIDLE中吗?该死的,你的格式太乱了如果你在使用jQuery,为什么你仍然坚持使用
document.getElementById
?不要把jQuery与太多的普通DOM函数和
document.getElementById(“insertname”+x+“+id”)。text=split\u info[0]
肯定行不通。我冒昧地修改了代码。你能把你的HTML也链接起来吗,也许可以把它们放在JSFIDLE中吗?见鬼,你的格式太乱了。如果你在使用jQuery,为什么还要坚持使用
document.getElementById
?不要把jQuery和太多的普通DOM函数混合在一起。还有
document.getElementById(“insertname”+x+“+id”).text=split\u info[0];
肯定不起作用。我冒昧地修改了代码。即使使用了
document.getElementById(“insertname”+x+“+id”)。innerHTML=
@Vinay,仍然存在同样的问题。不客气。但我的答案仍然有效,因此请务必修复代码。:)当然。我会通知我的朋友。:)当我编码时,我也会记住。即使使用
document.getElementById(“insertname”+x+“+id”)。innerHTML=
@Vinay你很受欢迎。但我的答案仍然存在,所以