Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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删除文本字段_Javascript_Function_Textfield - Fatal编程技术网

使用Javascript删除文本字段

使用Javascript删除文本字段,javascript,function,textfield,Javascript,Function,Textfield,我使用以下代码在调用函数时添加文本字段: <span id="response"></span> <script> var qcountBox = 2; var acountBox = 2; var qboxName = 0; var aboxName = 0; function addInput() { var qboxN

我使用以下代码在调用函数时添加文本字段:

<span id="response"></span>
        <script>
        var qcountBox = 2;
        var acountBox = 2;
        var qboxName = 0;
        var aboxName = 0;
        function addInput()
        {
             var qboxName="question"+qcountBox;
             var aboxName="answer"+acountBox;
             if(qcountBox <=10 && acountBox <= 10) 
                {
                document.getElementById('response').innerHTML+='<br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/>';
                document.getElementById('response').innerHTML+='<br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/>';
                qcountBox ++;
                acountBox ++;
             }else
             alert("No more than 10 questions allowed at this time.");
        }

var qcountBox=2;
var acountBox=2;
var qboxName=0;
var aboxName=0;
函数addInput()
{
var qboxName=“问题”+qcountBox;
var aboxName=“answer”+accountbox;

如果(qcountBox用一个通用类名将每个新的HTML片段包围在一个范围内,那么,找到所有具有该类名的对象并将其删除

将范围和类名添加到以下内容:

document.getElementById('response').innerHTML+='<span class="added"> <br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/></span>';
document.getElementById('response').innerHTML+='<span class="added"><br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/></span>';
document.getElementById('response').innerHTML+='
问题'+qcountBox+':'; document.getElementById('response').innerHTML+='
答案'+acountBox+':
';
然后,可以删除所有添加的跨距,如下所示:

var items = document.getElementsByClassName("added");
for (var i = 0; i < items.length; i++) {
    items[i].parentNode.removeChild(items[i]);
}
function removeInput()
{
    var qboxName = "question" + count;
    var aboxName = "answer" + count;
    document.getElementById("response").removeChild(document.getElementById(aboxName));
    document.getElementById("response").removeChild(document.getElementById(aboxName));
    count--;
}
var items=document.getElementsByClassName(“添加”);
对于(变量i=0;i
注意:这通常是添加新HTML的更好方法,因为它不会重写所有以前的HTML-它只是添加新的DOM对象:

var span = document.createElement("span");
span.className = "added";
span.innerHTML = '<br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/><br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/>';
document.getElementById('response').appendChild(span);
var span=document.createElement(“span”);
span.className=“已添加”;
span.innerHTML='
问题'+qcountBox+':
答案'+accountbox+':
; document.getElementById('response').appendChild(span);

var qcountBox=1;
var acountBox=1;
var qboxName=0;
var aboxName=0;
函数addInput()
{
var qboxName=“问题”+qcountBox;
var aboxName=“answer”+accountbox;

如果(qcountBox,您实际上应该在javascript中创建一个输入元素,并通过
appendChild
将其附加到容器中,而不是使用
innerHTML+=

您还应该为这些字段设置一个ID,而不仅仅是一个名称。但它可以与它们的名称相同

像这样

var input = document.createElement("input");
input.type = "text";
input.name = input.id = qboxName;
document.getElementById("response").appendChild(input);
然后,你知道,对你需要的另一个输入字段做同样的操作。 我知道你需要一个文本标签的框,或其他什么,只要做同样的过程,插入一个跨度标签之前,他们

另外,我看不出这两个计数变量有什么原因。完全可能只有一个计数变量,而不是
qcountBox
accountbox
。也许我错了,但你不应该在设置框名之前增加这个计数吗

要删除它,可以使用
removeChild
方法,然后减少计数变量。如下所示:

var items = document.getElementsByClassName("added");
for (var i = 0; i < items.length; i++) {
    items[i].parentNode.removeChild(items[i]);
}
function removeInput()
{
    var qboxName = "question" + count;
    var aboxName = "answer" + count;
    document.getElementById("response").removeChild(document.getElementById(aboxName));
    document.getElementById("response").removeChild(document.getElementById(aboxName));
    count--;
}

也许如果您要将其他元素与这些字段一起插入,比如标签的span标记等,最好将它们都包装在一个div或其他东西中,然后只需将
removeChild
移到这个容器div即可。

在添加问题时,为div使用特定的id,并在其中添加问题,这样就很容易了使用idI完全删除该div有一个跨度我忘了包含该部分代码,我刚刚更新了它。我如何使用您发布的按钮?谢谢您创建一个按钮,附加一个单击处理程序,该处理程序执行代码以删除添加的问题。似乎我打了某人的软肋spot@MattI-我在你回复之前编辑了我以前的评论但是,我觉得你需要自己在这里做一些研究,至少找到如何将javascript连接到按钮点击。