【问题标题】:Dynamically created form called via onclick disappears immediately Javascript通过 onclick 调用的动态创建的表单立即消失 Javascript
【发布时间】:2016-10-24 07:48:02
【问题描述】:

我在我的Javascript函数中动态创建了一个按钮,并在onclick上调用了另一个函数,如下所示。

streambtn =  document.createElement("button");
streambtn.setAttribute("onclick","createattribute()");

createattribute() 方法在动态创建的表单中打开一个细分,这个函数如下。

function createattribute() {

        inputval.innerHTML = "Provide a Stream name and click to add attribute-type pairs to yours stream.";
        var input = document.createElement("input");
        input.type = "text";
        input.placeholder="Attribute name";
        input.id="attr"+attrID;
        input.className = "attr-textfield-style";
        inputval.appendChild(input);

        //Display the drop down menu

        var newDiv=document.createElement('div');
        var html = '<select>', attrtypes = typeGenerate(), i;
        for(i = 0; i < attrtypes.length; i++) {
            html += "<option value='"+attrtypes[i]+"'>"+attrtypes[i]+"</option>";
        }
        html += '</select>';
        newDiv.className="attr-combobox-style";
        newDiv.id="type"+attrID;
        newDiv.innerHTML= html;
        inputval.appendChild(newDiv);
        attrID++;

        alert("attrname id: "+input.id+" attrtype id: "+ newDiv.id);
    }

inputval 是动态创建的表单中的一个分区,来自 createattribute() 函数的新创建的表单元素将附加到该分区。但是我现在面临的问题是,尽管正确调用了该方法,但单击 streambtn 后,表单(动态创建的表单)会立即消失。单击后,它将显示第一行“提供流名称并单击以将属性类型对添加到您的流中”。瞬间消失。有没有办法让它保持在屏幕上,然后根据任何条件隐藏它(比如在用户完成输入与新打开的表单相对应的数据后 -> 通过 createattribute() 方法创建)?

【问题讨论】:

    标签: javascript dynamic onclick element division


    【解决方案1】:

    type = "button" 添加为&lt;button&gt; 不带type = "button" 将充当提交按钮,超过clickclick 按钮,页面将被卸载。

    streambtn =  document.createElement("button");
    streambtn.type = 'button';
    streambtn.setAttribute("onclick","createattribute()");
    

    【讨论】:

    • 谢谢一百万。这行得通。虽然我确实发现表单是在单击按钮时提交的,但我不知道我必须单独声明类型,因为它是在 createElement("button") 行中指定的。
    • @NayantaraWilfred 即使是按钮标签,您也应该定义类型以防止点击事件时提交表单...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多